答案 0 :(得分:0)
accompanying unit tests是很好的参考。
def start_server(self, non_blocking=False, thread_pool=None):
self._thread_pool = thread_pool
self._servicer = health.HealthServicer(
experimental_non_blocking=non_blocking,
experimental_thread_pool=thread_pool)
self._servicer.set('', health_pb2.HealthCheckResponse.SERVING)
self._servicer.set(_SERVING_SERVICE,
health_pb2.HealthCheckResponse.SERVING)
self._servicer.set(_UNKNOWN_SERVICE,
health_pb2.HealthCheckResponse.UNKNOWN)
self._servicer.set(_NOT_SERVING_SERVICE,
health_pb2.HealthCheckResponse.NOT_SERVING)
self._server = test_common.test_server()
port = self._server.add_insecure_port('[::]:0')
health_pb2_grpc.add_HealthServicer_to_server(
self._servicer, self._server)
self._server.start()
在应用程序服务器的主服务程序类中保留对运行状况服务程序的引用。然后,在适当的时间,例如,在其上调用set()
方法启动完成时或进入无法处理请求的状态时。但是请注意,这利用了一些实验性功能,以确保所附加的健康服务程序不会导致应用程序级请求被饿死。
答案 1 :(得分:0)
我发现此示例非常有用: https://github.com/grpc/grpc/tree/master/examples/python/xds
具体地说,server.py
提供了运行状况检查和反射的实现。