Я наблюдаю разное поведение между шаблонами ZMQ PUSH/PULL и PUB/SUB при использовании ZMQStream. Если в режиме PUSH/PULL мой PULL-сокет запускается поздно, он все равно получает сообщения, отправленные ранее. Однако в PUB/SUB, если подписчик начинает позже, он пропускает все сообщения, отправленные до подключения.
from zmq.eventloop import ioloop, zmqstream
import zmq
import time
# PUSH/PULL Example
def push_example():
context = zmq.Context()
push_socket = context.socket(zmq.PUSH)
push_stream = zmqstream.ZMQStream(push_socket)
push_socket.connect("tcp://*:5555")
# Messages get queued even if PULL isn't started yet
push_stream.send_string("Message 1") # This will be received when PULL starts
def pull_example():
context = zmq.Context()
pull_socket = context.socket(zmq.PULL)
pull_stream = zmqstream.ZMQStream(pull_socket)
pull_socket.bind("tcp://localhost:5555")
# Will receive Message 1 even though started late
# PUB/SUB Example
def pub_example():
context = zmq.Context()
pub_socket = context.socket(zmq.PUB)
pub_stream = zmqstream.ZMQStream(pub_socket)
pub_socket.bind("tcp://*:5555")
# Message will be lost if SUB isn't already listening
pub_stream.send_string("Message 1") # This will be missed by late subscriber
def sub_example():
context = zmq.Context()
sub_socket = context.socket(zmq.SUB)
sub_stream = zmqstream.ZMQStream(sub_socket)
sub_socket.connect("tcp://localhost:5555")
sub_socket.setsockopt_string(zmq.SUBSCRIBE, "")
# Will NOT receive Message 1 since started late
Подробнее здесь: https://stackoverflow.com/questions/791 ... te-joiners
Почему шаблоны ZMQ PUSH/PULL и PUB/SUB ведут себя по-разному для поздних участников? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Отсутствующие сообщения с PGM в архитектуре PUB/SUB с использованием ZMQ 4.3.6
Anonymous » » в форуме C++ - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Отсутствующие сообщения с PGM в архитектуре PUB/SUB с использованием ZMQ 4.3.6
Anonymous » » в форуме C++ - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-