multiprocessing.Process 내부에 메시지를 수신하지 :PUB/SUB 모델 나는 <strong><code>multiprocessing.Process</code></strong>의 영역 내부의 pyzmq에게 <strong><code>PUB/SUB</code></strong> 소켓 원형을 사용하기 위해 노력하고있어
나는 하나 명의 가입자를 가지고 :
import time
import collections
import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.setsockopt(zmq.SUBSCRIBE, b"")
socket.connect("tcp://localhost:5000")
nb_recv = 0
begin = time.time()
counter = collections.defaultdict(int)
while True:
msg = socket.recv_json()
print(msg)
게시자의 두 가지 구현입니다. 이 하나
가입자 는 메시지를 수신한다 :
import zmq
from multiprocessing import Process
class Sender(object):
def __init__(self):
self._context = zmq.Context()
pass
def run(self):
self._socket = self._context.socket(zmq.PUB)
self._socket.bind("tcp://127.0.0.1:5000")
seq_num = 0
while True:
msg = { "sequence": seq_num }
self._socket.send_json(msg)
seq_num += 1
if __name__ == "__main__":
s = Sender()
p = Process(target=s.run)
p.start()
p.join()
하지만 유일한 차이 대신에있는 중, socket
생성 생성자로되어있다 이와 (와
import zmq
from multiprocessing import Process
class Sender(object):
def __init__(self):
self._context = zmq.Context()
self._socket = self._context.socket(zmq.PUB) # <---------
pass
def run(self):
self._socket.bind("tcp://127.0.0.1:5000")
seq_num = 0
while True:
msg = { "sequence": seq_num }
self._socket.send_json(msg)
seq_num += 1
if __name__ == "__main__":
s = Sender()
p = Process(target=s.run)
p.start()
p.join()
다음
run()
클래스 방법), 가입자
은에게 어떤 메시지를 수신하지 않습니다
multiprocessing.Process
을 threading.Thread
으로 바꿀 때 두 클래스 모두 잘 작동하지만 설명서에 대한 설명을 찾지 못했습니다.