我刚刚开始使用ZMQ.我正在设计一个应用程序的工作流程为:
我假设PUSH/PULL架构适用于此.请纠正我.
但是我该如何处理这些情况呢?
那么如何设置PUSH/PULL模型中的超时?
编辑:感谢user938949的建议,我得到了一个有效的答案,我正在为后代分享它.
我创建了一个zmq_forwarder.py单独运行并将消息从应用程序传递到sockJS连接,我现在正在研究烧瓶应用程序如何通过zmq从sockJS接收消息.我正在粘贴我的内容zmq_forwarder.py.我是ZMQ的新手,我不知道为什么每次运行它,它都使用100%的CPU负载.
import zmq
# Prepare our context and sockets
context = zmq.Context()
receiver_from_server = context.socket(zmq.PULL)
receiver_from_server.bind("tcp://*:5561")
forwarder_to_server = context.socket(zmq.PUSH)
forwarder_to_server.bind("tcp://*:5562")
receiver_from_websocket = context.socket(zmq.PULL)
receiver_from_websocket.bind("tcp://*:5563")
forwarder_to_websocket = context.socket(zmq.PUSH)
forwarder_to_websocket.bind("tcp://*:5564")
# Process messages from both sockets
# We prioritize traffic from the server
while True:
# forward messages from the server
while True:
try:
message = receiver_from_server.recv(zmq.DONTWAIT)
except zmq.Again:
break
print "Received from server: ", message
forwarder_to_websocket.send_string(message)
# forward messages from the websocket
while True:
try:
message = …Run Code Online (Sandbox Code Playgroud)