def items(self): context = zmq.Context() data_recv = context.socket(zmq.PULL) data_recv.connect("tcp://127.0.0.1:%s" % self.pull_port) control_sub = context.socket(zmq.SUB) control_sub.connect("tcp://127.0.0.1:%s" % self.control_port) control_sub.setsockopt_string(zmq.SUBSCRIBE, "STOP") # Wait a second to wake up and connect time.sleep(1) # Initialize poll set poller = zmq.Poller() poller.register(data_recv, zmq.POLLIN) poller.register(control_sub, zmq.POLLIN) while self.producers > 0: # Work on requests from pipelining and control channel while True: socks = dict(poller.poll()) if data_recv in socks and socks[data_recv] == zmq.POLLIN: yield(recv_ujson(data_recv)) if control_sub in socks and socks[control_sub] == zmq.POLLIN: message = control_sub.recv_string() if message == "STOP": print("Received STOP %s" % self.name) break # Exit poll loop self.producers -= 1 time.sleep(1)
def items(self): context = zmq.Context() data_recv = context.socket(zmq.PULL) data_recv.connect("tcp://127.0.0.1:%s" % self.pull_port) control_sub = context.socket(zmq.SUB) control_sub.connect("tcp://127.0.0.1:%s" % self.control_port) control_sub.setsockopt_string(zmq.SUBSCRIBE, "STOP") # Wait a second to wake up and connect time.sleep(1) # Initialize poll set poller = zmq.Poller() poller.register(data_recv, zmq.POLLIN) poller.register(control_sub, zmq.POLLIN) while self.producers > 0: # Work on requests from pipelining and control channel while True: socks = dict(poller.poll()) if data_recv in socks and socks[data_recv] == zmq.POLLIN: yield (recv_ujson(data_recv)) if control_sub in socks and socks[control_sub] == zmq.POLLIN: message = control_sub.recv_string() if message == "STOP": print("Received STOP %s" % self.name) break # Exit poll loop self.producers -= 1 time.sleep(1)
def items(self): context = zmq.Context() data_recv = context.socket(zmq.PULL) data_recv.bind("tcp://127.0.0.1:"+str(self.pull_port)) # Wait a second to wake up and connect time.sleep(1) while self.producers > 0: while True: item = recv_ujson(data_recv) if item == 'STOP': break yield item self.producers -= 1 time.sleep(1)
def items(self): context = zmq.Context() data_recv = context.socket(zmq.PULL) data_recv.bind("tcp://127.0.0.1:" + str(self.pull_port)) # Wait a second to wake up and connect time.sleep(1) while self.producers > 0: while True: item = recv_ujson(data_recv) if item == 'STOP': break yield item self.producers -= 1 time.sleep(1)