我正在尝试编写一个服务器/客户端脚本,其中包含一个可以解决任务的服务器,以及执行它的多个工作者.问题是我的呼吸机有很多任务,它会在心跳中填满记忆.我尝试在绑定之前设置HWM,但没有成功.它只是在工作人员连接时继续发送消息,完全忽略已设置的HWM.我还有一个接收器,记录完成的任务.
server.py
import zmq
def ventilate():
context = zmq.Context()
# Socket to send messages on
sender = context.socket(zmq.PUSH)
sender.setsockopt(zmq.SNDHWM, 30) #Big messages, so I don't want to keep too many in queue
sender.bind("tcp://*:5557")
# Socket with direct access to the sink: used to syncronize start of batch
sink = context.socket(zmq.PUSH)
sink.connect("tcp://localhost:5558")
print "Sending tasks to workers…"
# The first message is "0" and signals start of batch
sink.send('0')
print "Sent starting signal"
while True:
sender.send("Message")
if __name__=="__main__":
ventilate()
Run Code Online (Sandbox Code Playgroud)
worker.py
import …Run Code Online (Sandbox Code Playgroud)