gpt4 book ai didi

python - ZeroMQ:发送前必须 sleep

转载 作者:太空狗 更新时间:2023-10-29 22:13:28 24 4
gpt4 key购买 nike

我正在用 Forwarder 设备(用 pyzmq)写一个 zeromq 演示

代码如下(引用 https://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/devices/forwarder.html ):

转发器.py

import zmq

context = zmq.Context()
frontend = context.socket(zmq.SUB)
frontend.bind('tcp://*:5559')
frontend.setsockopt(zmq.SUBSCRIBE, '')

backend = context.socket(zmq.PUB)
backend.bind('tcp://*:5560')

zmq.device(zmq.FORWARDER, frontend, backend)

子.py

import zmq

context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect('tcp://localhost:5560')
socket.setsockopt(zmq.SUBSCRIBE, '')

while True:
print socket.recv()

发布.py

import zmq, time

context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.connect('tcp://localhost:5559')
# time.sleep(0.01)
socket.send('9 hahah')

我在终端运行python forwarder.py, python sub.py

然后运行python pub.py,订阅者收不到消息。但是,如果我在发送前睡了一会儿(例如 0.01 秒),它就会起作用。

所以我的问题是,为什么我要在发送前 sleep ?谢谢。

最佳答案

它被称为 Slow Joiner综合征。阅读 guide , 有一些方法可以使用 pub/sub syncing 来避免它.

关于python - ZeroMQ:发送前必须 sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19442970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com