jina.serve.runtimes.head package#

Submodules#

Module contents#

class jina.serve.runtimes.head.HeadRuntime(args, **kwargs)[source]#

Bases: AsyncNewLoopRuntime, ABC

Runtime is used in head pods. It responds to Gateway requests and sends to uses_before/uses_after and its workers

Initialize grpc server for the head runtime. :type args: Namespace :param args: args from CLI :param kwargs: keyword args

DEFAULT_POLLING = 1#
async async_setup()[source]#

Wait for the GRPC server to start

async async_run_forever()[source]#

Block until the GRPC server is terminated

async async_cancel()[source]#

Stop the GRPC server

async async_teardown()[source]#

Close the connection pool

async process_single_data(request, context)[source]#

Process the received requests and return the result as a new request

Parameters:
  • request (DataRequest) – the data request to process

  • context – grpc context

Return type:

DataRequest

Returns:

the response request

async process_data(requests, context)[source]#

Process the received data request and return the result as a new request

Parameters:
  • requests (List[DataRequest]) – the data requests to process

  • context – grpc context

Return type:

DataRequest

Returns:

the response request

async endpoint_discovery(empty, context)[source]#

Uses the connection pool to send a discover endpoint call to the workers

Parameters:
  • empty – The service expects an empty protobuf message

  • context – grpc context

Return type:

EndpointsProto

Returns:

the response request

aio_tracing_client_interceptors()#

Create a gRPC client aio channel interceptor. :rtype: Optional[Sequence[ClientInterceptor]] :returns: An invocation-side list of aio interceptor objects.

aio_tracing_server_interceptors()#

Create a gRPC aio server interceptor. :rtype: Optional[Sequence[ServerInterceptor]] :returns: A service-side aio interceptor object.

async cancel_warmup_task()#

Cancel warmup task if exists and is not completed. Cancellation is required if the Flow is being terminated before the task is successful or hasn’t reached the max timeout.

static is_ready(ctrl_address, timeout=1.0, **kwargs)#

Check if status is ready.

Parameters:
  • ctrl_address (str) – the address where the control request needs to be sent

  • timeout (float) – timeout of the health check in seconds

  • kwargs – extra keyword arguments

Return type:

bool

Returns:

True if status is ready else False.

run_forever()#

Running method to block the main thread.

Run the event loop until a Future is done.

teardown()#

Call async_teardown() and stop and close the event loop.

tracing_client_interceptor()#
Return type:

Optional[OpenTelemetryClientInterceptor]

Returns:

a gRPC client interceptor with the global tracing provider.

classmethod wait_for_ready_or_shutdown(timeout, ready_or_shutdown_event, ctrl_address, **kwargs)#

Check if the runtime has successfully started

Parameters:
  • timeout (Optional[float]) – The time to wait before readiness or failure is determined

  • ctrl_address (str) – the address where the control message needs to be sent

  • ready_or_shutdown_event (Union[Event, Event]) – the multiprocessing event to detect if the process failed or is ready

  • kwargs – extra keyword arguments

Returns:

True if is ready or it needs to be shutdown