Я хотел бы передать два процесса (отправителя и получателя) с помощью zeromq. Теперь, если процесс-получатель не запущен, я бы хотел, чтобы процесс-отправитель продолжал свое выполнение, даже если сообщение потеряно.
Пытаясь реализовать это с помощью паттерна PUB-SUB, я заметил, что если получатель не запущен, отправитель зависает. Например, в следующем исходном коде отправителя:
import zmq
context = zmq.Context()
sender = context.socket(zmq.PUB)
sender.connect("tcp://localhost:5555")
sender.send("Sending to nobody", NOBLOCK)
print "Msg sent"
когда получатель не работает, сообщение «Сообщение отправлено» никогда не печатается, а отправитель остается в «sender.send («Отправка никому», NOBLOCK)» навсегда. Кроме того, я попытался проверить, работает ли приемник или не получает возврат функции connect, но в обоих случаях всегда "Нет".
Я использую Python 2.6.5 и zeromq 2.1.
Кто-нибудь знает, что это происходит или альтернативное решение? (Я пытался использовать PULL-PUSH и REQ-REP, но результаты были схожими)
Заранее большое спасибо