コード例 #1
0
ファイル: processors.py プロジェクト: armaseg/WikiDAT
    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)
コード例 #2
0
    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)
コード例 #3
0
ファイル: processors.py プロジェクト: armaseg/WikiDAT
    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)
コード例 #4
0
    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)