有没有一种简便的方法可以正常关闭python grpc服务器?

时间:2019-10-16 07:33:49

标签: python kubernetes grpc

Here是一个博客,介绍了如何在Kotlin中正常关闭GRPC服务器。

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

我找不到如何计算python中的实时通话次数。有人可以指出我会提供帮助的文档吗?

2 个答案:

答案 0 :(得分:1)

结果是有一种简便的方法可以代替计数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')

答案 1 :(得分:0)

gRPC Python服务器具有一个(新的)method for this。只需致电server.wait_for_termination()