因此,我正在使用 ZeroRPC 和 Tornado 进行一个宠物项目,并且在将 ZeroRPC 与python
的多处理库结合使用时遇到了一些问题。具体来说,我正在以编程方式创建和运行新的 ZeroRPC 服务器,但通常在运行时,zerorpc
服务器会阻塞,所以我的想法是将它扔到另一个进程中,如下所示:
server = zerorpc.Server(FuncWrapper())
server.bind(server_address)
process = multiprocessing.Process(target=server.run)
process.start()
但是,当我这样做时,调用RPC
服务器只是挂起,这是未正确实例化端点时的典型行为。但是,如果我只是让服务器运行阻塞并像这样调用它:
serhouldver = zerorpc.Server(FuncWrapper())
server.bind(server_address)
server.run()
一切正常。我的理解是这两个实现应该是等价的,但不知何故它们不是。
有任何想法吗?