【发布时间】:2017-01-16 22:34:33
【问题描述】:
我尝试从一个客户端向两个工作人员发送 10 条消息。我使用推/拉模式。我在 2 日丢失了一条消息。
python push.py
message n°0
message n°1
message n°2
message n°3
message n°4
message n°5
message n°6
message n°7
message n°8
message n°9
工人 1:
python pull.py
Received message n°1
Received message n°4
Received message n°7
工人 2:
python pull.py
Received message n°0
Received message n°3
Received message n°6
Received message n°9
我使用 python 3,这是我的代码:
push.py
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.PUSH)
socket.bind("tcp://127.0.0.1:5557")
time.sleep(1)
for i in range(10):
message = "message n°%d" % i
print(message)
socket.send_string(message)
time.sleep(1)
time.sleep(1)
拉.py
import zmq
context = zmq.Context()
socket = context.socket(zmq.PULL)
socket.connect("tcp://127.0.0.1:5557")
while True:
print("Received %s" % socket.recv_string())
也许我的插座上丢失了选项。有什么帮助吗?
【问题讨论】:
-
我注意到消息推送太快时出现奇怪的消息丢失。尝试增加消息之间的超时。此外,请确保首先启动 2 个拉动工人。这有什么改变吗?编辑:就我而言,我使用的是 pub/sub。
-
pub sub 按预期工作,我没有丢失任何消息。仅使用 PUSH/PULL 时出现此错误