我想将 zeroRPC 服务器作为 greenlet 与其他 gevent greenlet 在同一循环中运行。ZeroRPC 的文档有点轻。这是启动 zeroRPC 服务器的建议方法:
s = zerorpc.Server(Cooler())
s.bind("tcp://0.0.0.0:4242")
s.run()
要将服务器作为greenlet 运行,我将运行包装在greenlet 中:
s = zerorpc.Server(Cooler())
s.bind("tcp://0.0.0.0:4242")
gevent.spawn(s.run)
# More code and greenlets started.
# ...
不过好像有点别扭,考虑到zeroRPC已经是基于gevent的,而且gevent框架中的其他服务器都有非阻塞的启动方式。
有一个更好的方法吗?