有没有一种简单的方法可以优雅地关闭python grpc服务器?



这里有一个博客,解释了如何在 kotlin 中优雅地关闭 GRPC 服务器。

这是唯一的方法吗?计算实时呼叫并手动处理SIGTERM?这应该是正常行为。

我找不到如何在 python 中计算实时调用。有人可以指出我会有所帮助的文档吗?

事实证明,有一种简单的方法可以代替计算 RPC,这是我完成它的方法:

server = grpc.server(futures.ThreadPoolExecutor(max_workers=100))
{} = {}Impl()
add_{}Servicer_to_server({}, server)
server.add_insecure_port('[::]:' + port)
server.start()
logger.info('Started server at ' + port)
done = threading.Event()
def on_done(signum, frame):
logger.info('Got signal {}, {}'.format(signum, frame))
done.set()
signal.signal(signal.SIGTERM, on_done)
done.wait()
logger.info('Stopped RPC server, Waiting for RPCs to complete...')
server.stop(NUM_SECS_TO_WAIT).wait()
logger.info('Done stopping server')

gRPC Python服务器对此有一个(newish(方法。只需致电server.wait_for_termination()

最新更新