Python zmq.DONTWAIT Examples
The following are 27
code examples of zmq.DONTWAIT().
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: worker.py From zimfarm with GNU General Public License v3.0 | 6 votes |
def run(self): if self.should_stop: # early exit return 1 context = zmq.Context() socket = context.socket(zmq.SUB) logger.info(f"subscribing to events from {self.socket_uri}…") socket.connect(self.socket_uri) for event in self.events: logger.debug(f".. {event}") socket.setsockopt_string(zmq.SUBSCRIBE, event) while not self.should_stop: try: received_string = socket.recv_string(zmq.DONTWAIT) self.handle_broadcast_event(received_string) except zmq.Again: pass if self.should_poll: self.sync_tasks_and_containers() self.poll() else: self.sleep()
Example #2
Source File: DWX_ZeroMQ_Connector_v2_0_1_RC8.py From DarwinexLabs with BSD 3-Clause "New" or "Revised" License | 6 votes |
def remote_recv(self, _socket): try: msg = _socket.recv_string(zmq.DONTWAIT) return msg except zmq.error.Again: print("\nResource timeout.. please try again.") sleep(0.000001) return None ########################################################################## # Convenience functions to permit easy trading via underlying functions. # OPEN ORDER
Example #3
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 #4
Source File: DWX_ZeroMQ_Connector_v2_0_2_RC1.py From dwx-zeromq-connector with BSD 3-Clause "New" or "Revised" License | 6 votes |
def remote_recv(self, _socket): try: msg = _socket.recv_string(zmq.DONTWAIT) return msg except zmq.error.Again: print("\nResource timeout.. please try again.") sleep(0.000001) return None ########################################################################## # Convenience functions to permit easy trading via underlying functions. # OPEN ORDER
Example #5
Source File: worker.py From rl_algorithms with MIT License | 6 votes |
def recv_params_from_learner(self): """Get new params and sync. return True if success, False otherwise.""" received = False try: new_params_id = self.sub_socket.recv(zmq.DONTWAIT) received = True except zmq.Again: # Although learner doesn't send params, don't wait pass if received: new_param_info = pa.deserialize(new_params_id) update_step, new_params = new_param_info self.update_step = update_step self.worker.synchronize(new_params) # Add new entry for scores dict self.scores[self.update_step] = []
Example #6
Source File: wrapper.py From rl_algorithms with MIT License | 6 votes |
def recv_worker_data(self): """Receive replay data from worker and incorporate to buffer.""" received = False try: new_replay_data_id = self.pull_socket.recv(zmq.DONTWAIT) received = True except zmq.Again: pass if received: new_replay_data = pa.deserialize(new_replay_data_id) experience, priorities = new_replay_data for idx in range(len(experience["states"])): transition = ( experience["states"][idx], experience["actions"][idx], experience["rewards"][idx], experience["next_states"][idx], experience["dones"][idx], ) self.buffer.add(transition) self.buffer.update_priorities([len(self.buffer) - 1], priorities[idx])
Example #7
Source File: distributed_logger.py From rl_algorithms with MIT License | 5 votes |
def recv_log_info(self): """Receive info from learner.""" received = False try: log_info_id = self.pull_socket.recv(zmq.DONTWAIT) received = True except zmq.Again: pass if received: self.log_info_queue.append(log_info_id)
Example #8
Source File: _future.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _handle_send(self): if not self._shadow_sock.EVENTS & POLLOUT: # event triggered, but state may have been changed between trigger and callback return f = None while self._send_futures: f, kind, kwargs, msg = self._send_futures.popleft() f._pyzmq_popped = True # skip any cancelled futures if f.done(): f = None else: break if not self._send_futures: self._drop_io_state(POLLOUT) if f is None: return if kind == 'poll': # on poll event, just signal ready, nothing else. f.set_result(None) return elif kind == 'send_multipart': send = self._shadow_sock.send_multipart elif kind == 'send': send = self._shadow_sock.send else: raise ValueError("Unhandled send event type: %r" % kind) kwargs['flags'] |= _zmq.DONTWAIT try: result = send(msg, **kwargs) except Exception as e: f.set_exception(e) else: f.set_result(result) # event masking from ZMQStream
Example #9
Source File: _future.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _handle_recv(self): """Handle recv events""" if not self._shadow_sock.EVENTS & POLLIN: # event triggered, but state may have been changed between trigger and callback return f = None while self._recv_futures: f, kind, kwargs, _ = self._recv_futures.popleft() f._pyzmq_popped = True # skip any cancelled futures if f.done(): f = None else: break if not self._recv_futures: self._drop_io_state(POLLIN) if f is None: return if kind == 'poll': # on poll event, just signal ready, nothing else. f.set_result(None) return elif kind == 'recv_multipart': recv = self._shadow_sock.recv_multipart elif kind == 'recv': recv = self._shadow_sock.recv else: raise ValueError("Unhandled recv event type: %r" % kind) kwargs['flags'] |= _zmq.DONTWAIT try: result = recv(**kwargs) except Exception as e: f.set_exception(e) else: f.set_result(result)
Example #10
Source File: _future.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _add_send_event(self, kind, msg=None, kwargs=None, future=None): """Add a send event, returning the corresponding Future""" f = future or self._Future() if kind.startswith('send') and kwargs.get('flags', 0) & _zmq.DONTWAIT: # short-circuit non-blocking calls send = getattr(self._shadow_sock, kind) try: r = send(msg, **kwargs) except Exception as e: f.set_exception(e) else: f.set_result(r) return f # we add it to the list of futures before we add the timeout as the # timeout will remove the future from recv_futures to avoid leaks self._send_futures.append( _FutureEvent(f, kind, kwargs=kwargs, msg=msg) ) # Don't let the Future sit in _send_futures after it's done f.add_done_callback(lambda f: self._remove_finished_future(f, self._send_futures)) if hasattr(_zmq, 'SNDTIMEO'): timeout_ms = self._shadow_sock.sndtimeo if timeout_ms >= 0: self._add_timeout(f, timeout_ms * 1e-3) if self._shadow_sock.EVENTS & POLLOUT: # send immediately if we can self._handle_send() # make sure we schedule pending events # if we are taking this shortcut # only if not _send_futures because `_add_io_state` # does the same thing below if not self._send_futures: self._schedule_remaining_events() if self._send_futures: self._add_io_state(POLLOUT) return f
Example #11
Source File: _future.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _add_recv_event(self, kind, kwargs=None, future=None): """Add a recv event, returning the corresponding Future""" f = future or self._Future() if kind.startswith('recv') and kwargs.get('flags', 0) & _zmq.DONTWAIT: # short-circuit non-blocking calls recv = getattr(self._shadow_sock, kind) try: r = recv(**kwargs) except Exception as e: f.set_exception(e) else: f.set_result(r) return f # we add it to the list of futures before we add the timeout as the # timeout will remove the future from recv_futures to avoid leaks self._recv_futures.append( _FutureEvent(f, kind, kwargs, msg=None) ) # Don't let the Future sit in _recv_events after it's done f.add_done_callback(lambda f: self._remove_finished_future(f, self._recv_futures)) if hasattr(_zmq, 'RCVTIMEO'): timeout_ms = self._shadow_sock.rcvtimeo if timeout_ms >= 0: self._add_timeout(f, timeout_ms * 1e-3) if self._shadow_sock.EVENTS & POLLIN: # recv immediately, if we can self._handle_recv() if self._recv_futures: self._add_io_state(POLLIN) return f
Example #12
Source File: DWX_ZeroMQ_Connector_v2_0_1_RC8.py From DarwinexLabs with BSD 3-Clause "New" or "Revised" License | 5 votes |
def remote_send(self, _socket, _data): try: _socket.send_string(_data, zmq.DONTWAIT) except zmq.error.Again: print("\nResource timeout.. please try again.") sleep(0.000000001) ##########################################################################
Example #13
Source File: _test_asyncio.py From pySINDy 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())
Example #14
Source File: _future.py From pySINDy with MIT License | 5 votes |
def _handle_send(self): if not self._shadow_sock.EVENTS & POLLOUT: # event triggered, but state may have been changed between trigger and callback return f = None while self._send_futures: f, kind, kwargs, msg = self._send_futures.popleft() f._pyzmq_popped = True # skip any cancelled futures if f.done(): f = None else: break if not self._send_futures: self._drop_io_state(POLLOUT) if f is None: return if kind == 'poll': # on poll event, just signal ready, nothing else. f.set_result(None) return elif kind == 'send_multipart': send = self._shadow_sock.send_multipart elif kind == 'send': send = self._shadow_sock.send else: raise ValueError("Unhandled send event type: %r" % kind) kwargs['flags'] |= _zmq.DONTWAIT try: result = send(msg, **kwargs) except Exception as e: f.set_exception(e) else: f.set_result(result) # event masking from ZMQStream
Example #15
Source File: _future.py From pySINDy with MIT License | 5 votes |
def _handle_recv(self): """Handle recv events""" if not self._shadow_sock.EVENTS & POLLIN: # event triggered, but state may have been changed between trigger and callback return f = None while self._recv_futures: f, kind, kwargs, _ = self._recv_futures.popleft() f._pyzmq_popped = True # skip any cancelled futures if f.done(): f = None else: break if not self._recv_futures: self._drop_io_state(POLLIN) if f is None: return if kind == 'poll': # on poll event, just signal ready, nothing else. f.set_result(None) return elif kind == 'recv_multipart': recv = self._shadow_sock.recv_multipart elif kind == 'recv': recv = self._shadow_sock.recv else: raise ValueError("Unhandled recv event type: %r" % kind) kwargs['flags'] |= _zmq.DONTWAIT try: result = recv(**kwargs) except Exception as e: f.set_exception(e) else: f.set_result(result)
Example #16
Source File: _future.py From pySINDy with MIT License | 5 votes |
def _add_send_event(self, kind, msg=None, kwargs=None, future=None): """Add a send event, returning the corresponding Future""" f = future or self._Future() if kind.startswith('send') and kwargs.get('flags', 0) & _zmq.DONTWAIT: # short-circuit non-blocking calls send = getattr(self._shadow_sock, kind) try: r = send(msg, **kwargs) except Exception as e: f.set_exception(e) else: f.set_result(r) return f # we add it to the list of futures before we add the timeout as the # timeout will remove the future from recv_futures to avoid leaks self._send_futures.append( _FutureEvent(f, kind, kwargs=kwargs, msg=msg) ) # Don't let the Future sit in _send_futures after it's done f.add_done_callback(lambda f: self._remove_finished_future(f, self._send_futures)) if hasattr(_zmq, 'SNDTIMEO'): timeout_ms = self._shadow_sock.sndtimeo if timeout_ms >= 0: self._add_timeout(f, timeout_ms * 1e-3) if self._shadow_sock.EVENTS & POLLOUT: # send immediately if we can self._handle_send() # make sure we schedule pending events # if we are taking this shortcut # only if not _send_futures because `_add_io_state` # does the same thing below if not self._send_futures: self._schedule_remaining_events() if self._send_futures: self._add_io_state(POLLOUT) return f
Example #17
Source File: _future.py From pySINDy with MIT License | 5 votes |
def _add_recv_event(self, kind, kwargs=None, future=None): """Add a recv event, returning the corresponding Future""" f = future or self._Future() if kind.startswith('recv') and kwargs.get('flags', 0) & _zmq.DONTWAIT: # short-circuit non-blocking calls recv = getattr(self._shadow_sock, kind) try: r = recv(**kwargs) except Exception as e: f.set_exception(e) else: f.set_result(r) return f # we add it to the list of futures before we add the timeout as the # timeout will remove the future from recv_futures to avoid leaks self._recv_futures.append( _FutureEvent(f, kind, kwargs, msg=None) ) # Don't let the Future sit in _recv_events after it's done f.add_done_callback(lambda f: self._remove_finished_future(f, self._recv_futures)) if hasattr(_zmq, 'RCVTIMEO'): timeout_ms = self._shadow_sock.rcvtimeo if timeout_ms >= 0: self._add_timeout(f, timeout_ms * 1e-3) if self._shadow_sock.EVENTS & POLLIN: # recv immediately, if we can self._handle_recv() if self._recv_futures: self._add_io_state(POLLIN) return f
Example #18
Source File: broker.py From idasec with GNU Lesser General Public License v2.1 | 5 votes |
def send_message(socket, cmd, data, blocking=True): flags = 0 if blocking else zmq.DONTWAIT socket.send_multipart([cmd, data], flags=flags)
Example #19
Source File: zeromq_queue.py From plaso with Apache License 2.0 | 5 votes |
def _SendItem(self, zmq_socket, item, block=True): """Attempts to send an item to a ZeroMQ socket. Args: zmq_socket (zmq.Socket): used to the send the item. item (object): sent on the queue. Will be pickled prior to sending. block (Optional[bool]): whether the push should be performed in blocking or non-blocking mode. Returns: bool: whether the item was sent successfully. """ try: logger.debug('{0:s} sending item'.format(self.name)) if block: zmq_socket.send_pyobj(item) else: zmq_socket.send_pyobj(item, zmq.DONTWAIT) logger.debug('{0:s} sent item'.format(self.name)) return True except zmq.error.Again: logger.debug('{0:s} could not send an item'.format(self.name)) except zmq.error.ZMQError as exception: if exception.errno == errno.EINTR: logger.error( 'ZMQ syscall interrupted in {0:s}.'.format( self.name)) return False
Example #20
Source File: DWX_ZeroMQ_Connector_v2_0_2_RC1.py From dwx-zeromq-connector with BSD 3-Clause "New" or "Revised" License | 5 votes |
def remote_send(self, _socket, _data): try: _socket.send_string(_data, zmq.DONTWAIT) except zmq.error.Again: print("\nResource timeout.. please try again.") sleep(0.000000001) ##########################################################################
Example #21
Source File: DWX_ZeroMQ_Connector_v2_0_1_RC8.py From dwx-zeromq-connector with BSD 3-Clause "New" or "Revised" License | 5 votes |
def remote_send(self, _socket, _data): if self._PUSH_SOCKET_STATUS['state'] == True: try: _socket.send_string(_data, zmq.DONTWAIT) except zmq.error.Again: print("\nResource timeout.. please try again.") sleep(self._sleep_delay) else: print('\n[KERNEL] NO HANDSHAKE ON PUSH SOCKET.. Cannot SEND data') ##########################################################################
Example #22
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())
Example #23
Source File: _future.py From vnpy_crypto with MIT License | 5 votes |
def _handle_send(self): if not self._shadow_sock.EVENTS & POLLOUT: # event triggered, but state may have been changed between trigger and callback return f = None while self._send_futures: f, kind, kwargs, msg = self._send_futures.popleft() f._pyzmq_popped = True # skip any cancelled futures if f.done(): f = None else: break if not self._send_futures: self._drop_io_state(POLLOUT) if f is None: return if kind == 'poll': # on poll event, just signal ready, nothing else. f.set_result(None) return elif kind == 'send_multipart': send = self._shadow_sock.send_multipart elif kind == 'send': send = self._shadow_sock.send else: raise ValueError("Unhandled send event type: %r" % kind) kwargs['flags'] |= _zmq.DONTWAIT try: result = send(msg, **kwargs) except Exception as e: f.set_exception(e) else: f.set_result(result) # event masking from ZMQStream
Example #24
Source File: _future.py From vnpy_crypto with MIT License | 5 votes |
def _handle_recv(self): """Handle recv events""" if not self._shadow_sock.EVENTS & POLLIN: # event triggered, but state may have been changed between trigger and callback return f = None while self._recv_futures: f, kind, kwargs, _ = self._recv_futures.popleft() f._pyzmq_popped = True # skip any cancelled futures if f.done(): f = None else: break if not self._recv_futures: self._drop_io_state(POLLIN) if f is None: return if kind == 'poll': # on poll event, just signal ready, nothing else. f.set_result(None) return elif kind == 'recv_multipart': recv = self._shadow_sock.recv_multipart elif kind == 'recv': recv = self._shadow_sock.recv else: raise ValueError("Unhandled recv event type: %r" % kind) kwargs['flags'] |= _zmq.DONTWAIT try: result = recv(**kwargs) except Exception as e: f.set_exception(e) else: f.set_result(result)
Example #25
Source File: _future.py From vnpy_crypto with MIT License | 5 votes |
def _add_send_event(self, kind, msg=None, kwargs=None, future=None): """Add a send event, returning the corresponding Future""" f = future or self._Future() if kind.startswith('send') and kwargs.get('flags', 0) & _zmq.DONTWAIT: # short-circuit non-blocking calls send = getattr(self._shadow_sock, kind) try: r = send(msg, **kwargs) except Exception as e: f.set_exception(e) else: f.set_result(r) return f # we add it to the list of futures before we add the timeout as the # timeout will remove the future from recv_futures to avoid leaks self._send_futures.append( _FutureEvent(f, kind, kwargs=kwargs, msg=msg) ) # Don't let the Future sit in _send_futures after it's done f.add_done_callback(lambda f: self._remove_finished_future(f, self._send_futures)) if hasattr(_zmq, 'SNDTIMEO'): timeout_ms = self._shadow_sock.sndtimeo if timeout_ms >= 0: self._add_timeout(f, timeout_ms * 1e-3) if self._shadow_sock.EVENTS & POLLOUT: # send immediately if we can self._handle_send() if self._send_futures: self._add_io_state(POLLOUT) return f
Example #26
Source File: _future.py From vnpy_crypto with MIT License | 5 votes |
def _add_recv_event(self, kind, kwargs=None, future=None): """Add a recv event, returning the corresponding Future""" f = future or self._Future() if kind.startswith('recv') and kwargs.get('flags', 0) & _zmq.DONTWAIT: # short-circuit non-blocking calls recv = getattr(self._shadow_sock, kind) try: r = recv(**kwargs) except Exception as e: f.set_exception(e) else: f.set_result(r) return f # we add it to the list of futures before we add the timeout as the # timeout will remove the future from recv_futures to avoid leaks self._recv_futures.append( _FutureEvent(f, kind, kwargs, msg=None) ) # Don't let the Future sit in _recv_events after it's done f.add_done_callback(lambda f: self._remove_finished_future(f, self._recv_futures)) if hasattr(_zmq, 'RCVTIMEO'): timeout_ms = self._shadow_sock.rcvtimeo if timeout_ms >= 0: self._add_timeout(f, timeout_ms * 1e-3) if self._shadow_sock.EVENTS & POLLIN: # recv immediately, if we can self._handle_recv() if self._recv_futures: self._add_io_state(POLLIN) return f
Example #27
Source File: DWX_ZeroMQ_Connector_v2_0_1_RC8.py From dwx-zeromq-connector with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _DWX_ZMQ_EVENT_MONITOR_(self, socket_name, monitor_socket): # 05-08-2019 11:21 CEST while self._ACTIVE: sleep(self._sleep_delay) # poll timeout is in ms, sleep() is s. # while monitor_socket.poll(): while monitor_socket.poll(self._poll_timeout): try: evt = recv_monitor_message(monitor_socket, zmq.DONTWAIT) evt.update({'description': self._MONITOR_EVENT_MAP[evt['event']]}) # print(f"\r[{socket_name} Socket] >> {evt['description']}", end='', flush=True) print(f"\n[{socket_name} Socket] >> {evt['description']}") # Set socket status on HANDSHAKE if evt['event'] == 4096: # EVENT_HANDSHAKE_SUCCEEDED if socket_name == "PUSH": self._PUSH_SOCKET_STATUS['state'] = True self._PUSH_SOCKET_STATUS['latest_event'] = 'EVENT_HANDSHAKE_SUCCEEDED' elif socket_name == "PULL": self._PULL_SOCKET_STATUS['state'] = True self._PULL_SOCKET_STATUS['latest_event'] = 'EVENT_HANDSHAKE_SUCCEEDED' # print(f"\n[{socket_name} Socket] >> ..ready for action!\n") else: # Update 'latest_event' if socket_name == "PUSH": self._PUSH_SOCKET_STATUS['state'] = False self._PUSH_SOCKET_STATUS['latest_event'] = evt['description'] elif socket_name == "PULL": self._PULL_SOCKET_STATUS['state'] = False self._PULL_SOCKET_STATUS['latest_event'] = evt['description'] if evt['event'] == zmq.EVENT_MONITOR_STOPPED: # Reinitialize the socket if socket_name == "PUSH": monitor_socket = self._PUSH_SOCKET.get_monitor_socket() elif socket_name == "PULL": monitor_socket = self._PULL_SOCKET.get_monitor_socket() except Exception as ex: _exstr = "Exception Type {0}. Args:\n{1!r}" _msg = _exstr.format(type(ex).__name__, ex.args) print(_msg) # Close Monitor Socket monitor_socket.close() print(f"\n++ [KERNEL] {socket_name} _DWX_ZMQ_EVENT_MONITOR_() Signing Out ++") ##########################################################################