Python zmq.PULL Examples
The following are 30
code examples of zmq.PULL().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
zmq
, or try the search function
.
Example #1
Source File: parallel_map.py From dataflow with Apache License 2.0 | 8 votes |
def run(self): enable_death_signal(_warn=self.identity == b'0') ctx = zmq.Context() # recv jobs socket = ctx.socket(zmq.PULL) socket.setsockopt(zmq.IDENTITY, self.identity) socket.set_hwm(self.hwm * self.batch_size) socket.connect(self.input_pipe) # send results out_socket = ctx.socket(zmq.PUSH) out_socket.set_hwm(max(self.hwm, 5)) out_socket.connect(self.result_pipe) batch = [] while True: dp = loads(socket.recv(copy=False)) dp = self.map_func(dp) if dp is not None: batch.append(dp) if len(batch) == self.batch_size: dp = BatchData.aggregate_batch(batch) out_socket.send(dumps(dp), copy=False) del batch[:]
Example #2
Source File: test_future.py From vnpy_crypto with MIT License | 6 votes |
def test_recv_json_cancelled(self): @gen.coroutine def test(): a, b = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = b.recv_json() assert not f.done() f.cancel() # cycle eventloop to allow cancel events to fire yield gen.sleep(0) obj = dict(a=5) yield a.send_json(obj) with pytest.raises(future.CancelledError): recvd = yield f assert f.done() # give it a chance to incorrectly consume the event events = yield b.poll(timeout=5) assert events yield gen.sleep(0) # make sure cancelled recv didn't eat up event recvd = yield gen.with_timeout(timedelta(seconds=5), b.recv_json()) assert recvd == obj self.loop.run_sync(test)
Example #3
Source File: _test_asyncio.py From vnpy_crypto with MIT License | 6 votes |
def test_recv_json_cancelled(self): @asyncio.coroutine def test(): a, b = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = b.recv_json() assert not f.done() f.cancel() # cycle eventloop to allow cancel events to fire yield from asyncio.sleep(0) obj = dict(a=5) yield from a.send_json(obj) with pytest.raises(CancelledError): recvd = yield from f assert f.done() # give it a chance to incorrectly consume the event events = yield from b.poll(timeout=5) assert events yield from asyncio.sleep(0) # make sure cancelled recv didn't eat up event f = b.recv_json() recvd = yield from asyncio.wait_for(f, timeout=5) assert recvd == obj self.loop.run_until_complete(test())
Example #4
Source File: test_socket.py From vnpy_crypto with MIT License | 6 votes |
def test_shadow(self): p = self.socket(zmq.PUSH) p.bind("tcp://127.0.0.1:5555") p2 = zmq.Socket.shadow(p.underlying) self.assertEqual(p.underlying, p2.underlying) s = self.socket(zmq.PULL) s2 = zmq.Socket.shadow(s.underlying) self.assertNotEqual(s.underlying, p.underlying) self.assertEqual(s.underlying, s2.underlying) s2.connect("tcp://127.0.0.1:5555") sent = b'hi' p2.send(sent) rcvd = self.recv(s2) self.assertEqual(rcvd, sent)
Example #5
Source File: test_socket.py From vnpy_crypto with MIT License | 6 votes |
def test_shadow_pyczmq(self): try: from pyczmq import zctx, zsocket except Exception: raise SkipTest("Requires pyczmq") ctx = zctx.new() ca = zsocket.new(ctx, zmq.PUSH) cb = zsocket.new(ctx, zmq.PULL) a = zmq.Socket.shadow(ca) b = zmq.Socket.shadow(cb) a.bind("inproc://a") b.connect("inproc://a") a.send(b'hi') rcvd = self.recv(b) self.assertEqual(rcvd, b'hi')
Example #6
Source File: server.py From Bert-TextClassification with MIT License | 6 votes |
def run(self): context = zmq.Context() receiver = context.socket(zmq.PULL) receiver.connect(self.worker_address) sink = context.socket(zmq.PUSH) sink.connect(self.sink_address) input_fn = self.input_fn_builder(receiver) self.logger.info('ready and listening') start_t = time.perf_counter() for r in self.estimator.predict(input_fn, yield_single_examples=False): # logger.info('new result!') send_ndarray(sink, r['client_id'], r['encodes']) time_used = time.perf_counter() - start_t start_t = time.perf_counter() self.logger.info('job %s\tsamples: %4d\tdone: %.2fs' % (r['client_id'], r['encodes'].shape[0], time_used)) receiver.close() sink.close() context.term() self.logger.info('terminated!')
Example #7
Source File: _test_asyncio.py From vnpy_crypto with MIT License | 6 votes |
def test_poll(self): @asyncio.coroutine def test(): a, b = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = b.poll(timeout=0) yield from asyncio.sleep(0) self.assertEqual(f.result(), 0) f = b.poll(timeout=1) assert not f.done() evt = yield from f self.assertEqual(evt, 0) f = b.poll(timeout=1000) assert not f.done() yield from a.send_multipart([b'hi', b'there']) evt = yield from f self.assertEqual(evt, zmq.POLLIN) recvd = yield from b.recv_multipart() self.assertEqual(recvd, [b'hi', b'there']) self.loop.run_until_complete(test())
Example #8
Source File: _test_asyncio.py From vnpy_crypto with MIT License | 6 votes |
def test_poll_base_socket(self): @asyncio.coroutine def test(): ctx = zmq.Context() url = 'inproc://test' a = ctx.socket(zmq.PUSH) b = ctx.socket(zmq.PULL) self.sockets.extend([a, b]) a.bind(url) b.connect(url) poller = zaio.Poller() poller.register(b, zmq.POLLIN) f = poller.poll(timeout=1000) assert not f.done() a.send_multipart([b'hi', b'there']) evt = yield from f self.assertEqual(evt, [(b, zmq.POLLIN)]) recvd = b.recv_multipart() self.assertEqual(recvd, [b'hi', b'there']) self.loop.run_until_complete(test())
Example #9
Source File: test_context.py From vnpy_crypto with MIT License | 6 votes |
def test_cyclic_destroy(self): """ctx.destroy should succeed when cyclic ref prevents gc""" # test credit @dln (GH #137): class CyclicReference(object): def __init__(self, parent=None): self.parent = parent def crash(self, sock): self.sock = sock self.child = CyclicReference(self) def crash_zmq(): ctx = self.Context() sock = ctx.socket(zmq.PULL) c = CyclicReference() c.crash(sock) ctx.destroy() crash_zmq()
Example #10
Source File: test_context.py From vnpy_crypto with MIT License | 6 votes |
def test_shadow_pyczmq(self): try: from pyczmq import zctx, zsocket, zstr except Exception: raise SkipTest("Requires pyczmq") ctx = zctx.new() a = zsocket.new(ctx, zmq.PUSH) zsocket.bind(a, "inproc://a") ctx2 = self.Context.shadow_pyczmq(ctx) b = ctx2.socket(zmq.PULL) b.connect("inproc://a") zstr.send(a, b'hi') rcvd = self.recv(b) self.assertEqual(rcvd, b'hi') b.close()
Example #11
Source File: parallel_map.py From dataflow with Apache License 2.0 | 6 votes |
def reset_state(self): _MultiProcessZMQDataFlow.reset_state(self) self._guard = DataFlowReentrantGuard() job_pipe = _get_pipe_name("dataflow_MaB_job") result_pipe = _get_pipe_name("dataflow_MaB_result") self.context = zmq.Context() self.socket = self.context.socket(zmq.PULL) self.socket.set_hwm(max(5, self.buffer_size // self.batch_size)) _bind_guard(self.socket, result_pipe) dispatcher = MultiProcessMapAndBatchDataZMQ._Dispatcher(self.ds, job_pipe, self.buffer_size) self._proc_ids = [u'{}'.format(k).encode('utf-8') for k in range(self.num_proc)] worker_hwm = max(3, self.buffer_size // self.num_proc // self.batch_size) self._procs = [MultiProcessMapAndBatchDataZMQ._Worker( self._proc_ids[k], self.map_func, job_pipe, result_pipe, worker_hwm, self.batch_size) for k in range(self.num_proc)] self._procs.append(dispatcher) self._start_processes()
Example #12
Source File: test_future.py From vnpy_crypto with MIT License | 6 votes |
def test_poll(self): @gen.coroutine def test(): a, b = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = b.poll(timeout=0) assert f.done() self.assertEqual(f.result(), 0) f = b.poll(timeout=1) assert not f.done() evt = yield f self.assertEqual(evt, 0) f = b.poll(timeout=1000) assert not f.done() yield a.send_multipart([b'hi', b'there']) evt = yield f self.assertEqual(evt, zmq.POLLIN) recvd = yield b.recv_multipart() self.assertEqual(recvd, [b'hi', b'there']) self.loop.run_sync(test)
Example #13
Source File: test_future.py From vnpy_crypto with MIT License | 6 votes |
def test_poll_base_socket(self): @gen.coroutine def test(): ctx = zmq.Context() url = 'inproc://test' a = ctx.socket(zmq.PUSH) b = ctx.socket(zmq.PULL) self.sockets.extend([a, b]) a.bind(url) b.connect(url) poller = future.Poller() poller.register(b, zmq.POLLIN) f = poller.poll(timeout=1000) assert not f.done() a.send_multipart([b'hi', b'there']) evt = yield f self.assertEqual(evt, [(b, zmq.POLLIN)]) recvd = b.recv_multipart() self.assertEqual(recvd, [b'hi', b'there']) a.close() b.close() ctx.term() self.loop.run_sync(test)
Example #14
Source File: garbage.py From Computable with MIT License | 6 votes |
def run(self): s = self.gc.context.socket(zmq.PULL) s.linger = 0 s.bind(self.gc.url) self.ready.set() while True: # detect fork if getpid is None or getpid() != self.pid: return msg = s.recv() if msg == b'DIE': break fmt = 'L' if len(msg) == 4 else 'Q' key = struct.unpack(fmt, msg)[0] tup = self.gc.refs.pop(key, None) if tup and tup.event: tup.event.set() del tup s.close()
Example #15
Source File: _test_asyncio.py From pySINDy with MIT License | 6 votes |
def test_poll_base_socket(self): @asyncio.coroutine def test(): ctx = zmq.Context() url = 'inproc://test' a = ctx.socket(zmq.PUSH) b = ctx.socket(zmq.PULL) self.sockets.extend([a, b]) a.bind(url) b.connect(url) poller = zaio.Poller() poller.register(b, zmq.POLLIN) f = poller.poll(timeout=1000) assert not f.done() a.send_multipart([b'hi', b'there']) evt = yield from f self.assertEqual(evt, [(b, zmq.POLLIN)]) recvd = b.recv_multipart() self.assertEqual(recvd, [b'hi', b'there']) self.loop.run_until_complete(test())
Example #16
Source File: _test_asyncio.py From pySINDy with MIT License | 6 votes |
def test_poll(self): @asyncio.coroutine def test(): a, b = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = b.poll(timeout=0) yield from asyncio.sleep(0) self.assertEqual(f.result(), 0) f = b.poll(timeout=1) assert not f.done() evt = yield from f self.assertEqual(evt, 0) f = b.poll(timeout=1000) assert not f.done() yield from a.send_multipart([b'hi', b'there']) evt = yield from f self.assertEqual(evt, zmq.POLLIN) recvd = yield from b.recv_multipart() self.assertEqual(recvd, [b'hi', b'there']) self.loop.run_until_complete(test())
Example #17
Source File: _test_asyncio.py From pySINDy with MIT License | 6 votes |
def test_recv_json_cancelled(self): @asyncio.coroutine def test(): a, b = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = b.recv_json() assert not f.done() f.cancel() # cycle eventloop to allow cancel events to fire yield from asyncio.sleep(0) obj = dict(a=5) yield from a.send_json(obj) with pytest.raises(CancelledError): recvd = yield from f assert f.done() # give it a chance to incorrectly consume the event events = yield from b.poll(timeout=5) assert events yield from asyncio.sleep(0) # make sure cancelled recv didn't eat up event f = b.recv_json() recvd = yield from asyncio.wait_for(f, timeout=5) assert recvd == obj self.loop.run_until_complete(test())
Example #18
Source File: test_socket.py From pySINDy with MIT License | 6 votes |
def test_shadow_pyczmq(self): try: from pyczmq import zctx, zsocket except Exception: raise SkipTest("Requires pyczmq") ctx = zctx.new() ca = zsocket.new(ctx, zmq.PUSH) cb = zsocket.new(ctx, zmq.PULL) a = zmq.Socket.shadow(ca) b = zmq.Socket.shadow(cb) a.bind("inproc://a") b.connect("inproc://a") a.send(b'hi') rcvd = self.recv(b) self.assertEqual(rcvd, b'hi')
Example #19
Source File: miner.py From og-miner with MIT License | 6 votes |
def generator_from_zmq_pull(context, host): socket = context.socket(zmq.PULL) # TODO: Configure socket with clean properties to avoid message overload. if host.endswith('/'): host = host[:-1] print_item("+", "Binding ZMQ pull socket : " + colorama.Fore.CYAN + "{0}".format(host) + colorama.Style.RESET_ALL) socket.bind(host) while True: try: message = socket.recv(flags=zmq.NOBLOCK) except zmq.Again as e: message = None if message is None: yield None # NOTE: We have to make the generator non blocking. else: task = json.loads(message) yield task
Example #20
Source File: server.py From og-miner with MIT License | 6 votes |
def __init__(self, push, pull, redis_conf): super(MinerClient, self).__init__() print("Connecting to Redis cache {} ...".format(redis_conf)) redis_host, redis_port, redis_db = redis_conf.split(":") self.redis = redis.StrictRedis(host=redis_host, port=int(redis_port), db=int(redis_db)) self.redis.setnx('transaction', 0) # NOTE: Expiration times for pending/processed tasks in seconds. self.transaction_expiration = 60 * 60 self.result_expiration = 60 * 10 context = zmq.Context() print("Connecting to push socket '{}' ...".format(push)) self.push = context.socket(zmq.PUSH) self.push.connect(push) print("Binding to pull socket '{}' ...".format(pull)) self.pull = context.socket(zmq.PULL) self.pull.bind(pull)
Example #21
Source File: test_convert_ilsvrc2010.py From attention-lvcsr with MIT License | 6 votes |
def test_images_consumer_randomized(): mock_messages = MOCK_CONSUMER_MESSAGES + [ {'type': 'recv_pyobj', 'flags': zmq.SNDMORE, 'obj': ('jenny.jpeg', 1)}, {'type': 'recv', 'flags': 0, 'data': numpy.cast['uint8']([8, 6, 7, 5, 3, 0, 9])} ] hdf5_file = MockH5PYFile() prepare_hdf5_file(hdf5_file, 4, 5, 8) socket = MockSocket(zmq.PULL, to_recv=mock_messages) image_consumer(socket, hdf5_file, 5, offset=4, shuffle_seed=0) written_data = set(tuple(s) for s in hdf5_file['encoded_images'][4:9]) expected_data = set(tuple(s['data']) for s in mock_messages[1::2]) assert written_data == expected_data written_targets = set(hdf5_file['targets'][4:9].flatten()) expected_targets = set(s['obj'][1] for s in mock_messages[::2]) assert written_targets == expected_targets written_filenames = set(hdf5_file['filenames'][4:9].flatten()) expected_filenames = set(s['obj'][0].encode('ascii') for s in mock_messages[::2]) assert written_filenames == expected_filenames
Example #22
Source File: memory_watcher.py From phillip with GNU General Public License v3.0 | 6 votes |
def __init__(self, path=None, port=None, pull=False): try: import zmq except ImportError as err: print("ImportError: {0}".format(err)) sys.exit("Need zmq installed.") self.pull = pull or port context = zmq.Context() self.socket = context.socket(zmq.PULL if self.pull else zmq.REP) if path: self.socket.bind("ipc://" + path) elif port: self.socket.bind("tcp://127.0.0.1:%d" % port) else: raise Exception("Must specify path or port.") self.messages = None
Example #23
Source File: win32support.py From Computable with MIT License | 6 votes |
def forward_read_events(fd, context=None): """Forward read events from an FD over a socket. This method wraps a file in a socket pair, so it can be polled for read events by select (specifically zmq.eventloop.ioloop) """ if context is None: context = zmq.Context.instance() push = context.socket(zmq.PUSH) push.setsockopt(zmq.LINGER, -1) pull = context.socket(zmq.PULL) addr='inproc://%s'%uuid.uuid4() push.bind(addr) pull.connect(addr) forwarder = ForwarderThread(push, fd) forwarder.start() return pull
Example #24
Source File: DWX_ZeroMQ_Connector_v2_0_1_RC8.py From dwx-zeromq-connector with BSD 3-Clause "New" or "Revised" License | 6 votes |
def remote_recv(self, _socket): if self._PULL_SOCKET_STATUS['state'] == True: try: msg = _socket.recv_string(zmq.DONTWAIT) return msg except zmq.error.Again: print("\nResource timeout.. please try again.") sleep(self._sleep_delay) else: print('\r[KERNEL] NO HANDSHAKE ON PULL SOCKET.. Cannot READ data', end='', flush=True) return None ########################################################################## # Convenience functions to permit easy trading via underlying functions. # OPEN ORDER
Example #25
Source File: distributed_logger.py From rl_algorithms with MIT License | 5 votes |
def init_communication(self): """Initialize inter-process communication sockets.""" ctx = zmq.Context() self.pull_socket = ctx.socket(zmq.PULL) self.pull_socket.bind(f"tcp://127.0.0.1:{self.comm_cfg.learner_logger_port}")
Example #26
Source File: lib.py From cloud-asr with Apache License 2.0 | 5 votes |
def create_poller(worker_address, frontend_address): context = zmq.Context() worker_socket = context.socket(zmq.PULL) worker_socket.bind(worker_address) frontend_socket = context.socket(zmq.REP) frontend_socket.bind(frontend_address) sockets = { "worker": {"socket": worker_socket, "receive": worker_socket.recv, "send": worker_socket.send_json}, "frontend": {"socket": frontend_socket, "receive": frontend_socket.recv, "send": frontend_socket.send}, } time_func = time.time return Poller(sockets, time_func)
Example #27
Source File: wrapper.py From rl_algorithms with MIT License | 5 votes |
def init_communication(self): """Initialize sockets for communication.""" ctx = zmq.Context() self.req_socket = ctx.socket(zmq.REQ) self.req_socket.connect(f"tcp://127.0.0.1:{self.comm_cfg.learner_buffer_port}") self.pull_socket = ctx.socket(zmq.PULL) self.pull_socket.bind(f"tcp://127.0.0.1:{self.comm_cfg.worker_buffer_port}")
Example #28
Source File: dpflow.py From tf-cpn with MIT License | 5 votes |
def receiver(name): context = zmq.Context() receiver = context.socket(zmq.PULL) receiver.bind('ipc://@{}'.format(name)) while True: id, msg = loads( receiver.recv() ) # print(id, end='') yield msg
Example #29
Source File: garbage.py From pySINDy with MIT License | 5 votes |
def run(self): # detect fork at beginning of the thread if getpid is None or getpid() != self.pid: self.ready.set() return try: s = self.gc.context.socket(zmq.PULL) s.linger = 0 s.bind(self.gc.url) finally: self.ready.set() while True: # detect fork if getpid is None or getpid() != self.pid: return msg = s.recv() if msg == b'DIE': break fmt = 'L' if len(msg) == 4 else 'Q' key = struct.unpack(fmt, msg)[0] tup = self.gc.refs.pop(key, None) if tup and tup.event: tup.event.set() del tup s.close()
Example #30
Source File: _test_asyncio.py From vnpy_crypto with MIT License | 5 votes |
def test_recv_dontwait(self): @asyncio.coroutine def test(): push, pull = self.create_bound_pair(zmq.PUSH, zmq.PULL) f = pull.recv(zmq.DONTWAIT) with self.assertRaises(zmq.Again): yield from f yield from push.send(b'ping') yield from pull.poll() # ensure message will be waiting f = pull.recv(zmq.DONTWAIT) assert f.done() msg = yield from f self.assertEqual(msg, b'ping') self.loop.run_until_complete(test())