我想運行一個zeroRPC服務器作爲greenlet與其他gevent greenlet在同一個循環中。 ZeroRPC的文檔有點亮。 這是啓動zeroRPC服務器建議的方式:如何運行zerorpc作爲greenlet?
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框架中的其他服務器具有非阻塞啓動方法。
有沒有更好的方法來做到這一點?