【发布时间】:2015-01-27 17:05:03
【问题描述】:
所以,我正在为一个宠物项目使用 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()
一切正常。我的理解是这两个实现应该是等价的,但不知何故它们不是。
有什么想法吗?
【问题讨论】:
标签: python multiprocessing rpc zeromq zerorpc