14 """A flaky backend for the gRPC Python retry example."""
23 helloworld_pb2, helloworld_pb2_grpc = grpc.protos_and_services(
33 self, request: helloworld_pb2.HelloRequest,
36 if self.
_counter[context.peer()] < 5:
37 if random.random() < 0.75:
38 logging.info(
'Injecting error to RPC from %s', context.peer())
39 await context.abort(grpc.StatusCode.UNAVAILABLE,
41 logging.info(
'Successfully responding to RPC from %s', context.peer())
46 server = grpc.aio.server()
49 listen_addr =
'[::]:50051'
50 server.add_insecure_port(listen_addr)
51 logging.info(
"Starting flaky server on %s", listen_addr)
53 await server.wait_for_termination()
56 if __name__ ==
'__main__':
57 logging.basicConfig(level=logging.INFO)