У меня есть простая ZMQ
программа, которая устанавливает сокет zmq.PUSH
, connects
, а затем пытается отправлять сообщения.
import zmq
zcontext = zmq.Context()
zsock = zcontext.socket(zmq.PUSH)
zsock.connect("tcp://localhost:12345")
with open(sys.argv[1]) as f:
for line in f:
zsock.send(line)
Это прекрасно работает, когда есть другая сторона.Но если есть проблемы со слушателем на другой стороне (например, забыл запустить слушатель, или я подключился к неправильному порту), он просто зависает после попытки отправить около 1000 сообщений (зависит от размера очереди по умолчанию).
Что правильно делать?Если есть какие-либо проблемы с другой стороной, я бы предпочел просто напечатать сообщение об ошибке и выйти изящно.