14 """The graceful shutdown example for the asyncio Greeter server."""
21 import helloworld_pb2_grpc
24 _cleanup_coroutines = []
30 self, request: helloworld_pb2.HelloRequest,
32 logging.info(
'Received request, sleeping for 4 seconds...')
33 await asyncio.sleep(4)
34 logging.info(
'Sleep completed, responding')
39 server = grpc.aio.server()
41 listen_addr =
'[::]:50051'
42 server.add_insecure_port(listen_addr)
43 logging.info(
"Starting server on %s", listen_addr)
46 async
def server_graceful_shutdown():
47 logging.info(
"Starting graceful shutdown...")
53 _cleanup_coroutines.append(server_graceful_shutdown())
54 await server.wait_for_termination()
57 if __name__ ==
'__main__':
58 logging.basicConfig(level=logging.INFO)
59 loop = asyncio.get_event_loop()
61 loop.run_until_complete(
serve())
63 loop.run_until_complete(*_cleanup_coroutines)