我试图使用ZeroMQ,但我似乎无法推送任何消息来尝试其他任何内容。
我的制作人是
import time, json, zmq
def producer():
context = zmq.Context.instance()
zmq_socket = context.socket(zmq.PUSH)
zmq_socket.bind("tcp://*:9555")
# Start your result manager and workers before you start your producers
for num in xrange(200):
work_message = { 'num' : num }
print work_message
zmq_socket.send(json.dumps(work_message))
producer()
我得到的只是第一次印刷的信息,然后等待。
答案 0 :(得分:2)
另一方面没有监听器,socket.send()是PUSH套接字上的阻塞方法。
您需要启动您的消费者并检查一切是否一切正常。
以下是文档:https://zeromq.github.io/pyzmq/api/zmq.html#zmq.Socket.send
作为旁注: 当PULL端连接时会创建等待队列,因此在这种情况下NOBLOCK标志将无用。
检查此问题以获取有关该标志的更多信息:zmq send with NOBLOCK raise Resource temporarily unavailable