Я пробую zmq со следующими кодами, но подписчики получают объекты один за другим.
Ниже приведен мой сценарий PU SH:
# zmq server -- run it once
import zmq
import time
# server
# print(zmq.Context)
ctx = zmq.Context()
sock = ctx.socket(zmq.PUSH)
sock.bind('ipc:///tmp/zmqtest')
i=0
while True:
i+=1
time.sleep(0.5)
sock.send_pyobj((i))
и следующие такое сценарий PULL:
# zmq client -- run it 2,3 times in parallel
import zmq
ctx = zmq.Context() # create a new context to kick the wheels
sock = ctx.socket(zmq.PULL)
sock.connect('ipc:///tmp/zmqtest')
i=0
while True:
i+=1
o = sock.recv_pyobj()
print('received python object:', o,i)
if o == 'quit':
print('exiting.')
break
Я получаю следующие выходные данные из одного из сценариев PULL:
received python object: 1 1
received python object: 3 2
received python object: 5 3
received python object: 7 4
Как я могу вывести sh объекты в оба сценария параллельно? Я пробовал PUB / SUB, но он не работает таким образом. (можете проверить замену PUSH/PULL
на PUB/SUB
)