【发布时间】:2017-01-21 20:47:09
【问题描述】:
我正在使用 twisted with zmq 。这是应用程序的概述:
我在两个系统上运行了两个扭曲的实例,我正在使用zmq(txZmq) 进行消息传递。
systemA 提交一些要由systemB 处理的作业。作业完成后它必须通知systemA(出于某些原因)。所以在两个系统上我都有zmq 监听以及使用不同的端口发送消息。现在我收到错误:
zmq.error.Again: Resource temporarily unavailable
这可能是因为当systemA 上的反应器正在处理一些数据时,系统B 碰巧向systemA 发送了一条通知消息(这是我的应用程序的一部分),zmq 也在其中监听传入消息。
所以我将systemA 上的处理部分更改为使用callInThread 的扭曲线程,也在线程内部我正在向zmq 发送消息,但我再次收到相同的错误
zmq.error.Again: Resource temporarily unavailable
为什么会这样??? 代码是这样的:
def send_remote_job():
# do some computation like fetch from db and process then send
send_socket.push(dumps(job_data))
recieve_socket.onPull = listen_for_notifiction()
reactor.callInThread(send_remote_job)
reactor.run()
【问题讨论】:
标签: python asynchronous twisted zeromq