Python zmq.ZMQError() Examples
The following are 30
code examples of zmq.ZMQError().
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: socket.py From pySINDy with MIT License | 6 votes |
def recv_string(self, flags=0, encoding='utf-8'): """Receive a unicode string, as sent by send_string. Parameters ---------- flags : int Any valid flags for :func:`Socket.recv`. encoding : str [default: 'utf-8'] The encoding to be used Returns ------- s : unicode string (unicode on py2, str on py3) The Python unicode string that arrives as encoded bytes. Raises ------ ZMQError for any of the reasons :func:`~Socket.recv` might fail """ msg = self.recv(flags=flags) return self._deserialize(msg, lambda buf: buf.decode(encoding))
Example #2
Source File: socket.py From vnpy_crypto with MIT License | 6 votes |
def recv_json(self, flags=0, **kwargs): """Receive a Python object as a message using json to serialize. Keyword arguments are passed on to json.loads Parameters ---------- flags : int Any valid flags for :func:`Socket.recv`. Returns ------- obj : Python object The Python object that arrives as a message. Raises ------ ZMQError for any of the reasons :func:`~Socket.recv` might fail """ from zmq.utils import jsonapi msg = self.recv(flags) return self._deserialize(msg, lambda buf: jsonapi.loads(buf, **kwargs))
Example #3
Source File: socket.py From vnpy_crypto with MIT License | 6 votes |
def recv_pyobj(self, flags=0): """Receive a Python object as a message using pickle to serialize. Parameters ---------- flags : int Any valid flags for :func:`Socket.recv`. Returns ------- obj : Python object The Python object that arrives as a message. Raises ------ ZMQError for any of the reasons :func:`~Socket.recv` might fail """ msg = self.recv(flags) return self._deserialize(msg, pickle.loads)
Example #4
Source File: zmqstream.py From vnpy_crypto with MIT License | 6 votes |
def _handle_recv(self): """Handle a recv event.""" if self._flushed: return try: msg = self.socket.recv_multipart(zmq.NOBLOCK, copy=self._recv_copy) except zmq.ZMQError as e: if e.errno == zmq.EAGAIN: # state changed since poll event pass else: raise else: if self._recv_callback: callback = self._recv_callback self._run_callback(callback, msg)
Example #5
Source File: messaging.py From sawtooth-core with Apache License 2.0 | 6 votes |
def start(self): """Starts receiving messages on the underlying socket and passes them to the message router. """ self._is_running = True while self._is_running: try: zmq_msg = await self._socket.recv_multipart() message = Message() message.ParseFromString(zmq_msg[-1]) await self._msg_router.route_msg(message) except DecodeError as e: LOGGER.warning('Unable to decode: %s', e) except zmq.ZMQError as e: LOGGER.warning('Unable to receive: %s', e) return except asyncio.CancelledError: self._is_running = False
Example #6
Source File: thread.py From vnpy_crypto with MIT License | 6 votes |
def run(self): """Start the Authentication Agent thread task""" self.authenticator.start() self.started.set() zap = self.authenticator.zap_socket poller = zmq.Poller() poller.register(self.pipe, zmq.POLLIN) poller.register(zap, zmq.POLLIN) while True: try: socks = dict(poller.poll()) except zmq.ZMQError: break # interrupted if self.pipe in socks and socks[self.pipe] == zmq.POLLIN: terminate = self._handle_pipe() if terminate: break if zap in socks and socks[zap] == zmq.POLLIN: self._handle_zap() self.pipe.close() self.authenticator.stop()
Example #7
Source File: socket.py From vnpy_crypto with MIT License | 6 votes |
def recv_string(self, flags=0, encoding='utf-8'): """Receive a unicode string, as sent by send_string. Parameters ---------- flags : int Any valid flags for :func:`Socket.recv`. encoding : str [default: 'utf-8'] The encoding to be used Returns ------- s : unicode string (unicode on py2, str on py3) The Python unicode string that arrives as encoded bytes. Raises ------ ZMQError for any of the reasons :func:`~Socket.recv` might fail """ msg = self.recv(flags=flags) return self._deserialize(msg, lambda buf: buf.decode(encoding))
Example #8
Source File: socket.py From vnpy_crypto with MIT License | 6 votes |
def get_hwm(self): """Get the High Water Mark. On libzmq ≥ 3, this gets SNDHWM if available, otherwise RCVHWM """ major = zmq.zmq_version_info()[0] if major >= 3: # return sndhwm, fallback on rcvhwm try: return self.getsockopt(zmq.SNDHWM) except zmq.ZMQError: pass return self.getsockopt(zmq.RCVHWM) else: return self.getsockopt(zmq.HWM)
Example #9
Source File: test_monqueue.py From vnpy_crypto with MIT License | 6 votes |
def build_device(self, mon_sub=b"", in_prefix=b'in', out_prefix=b'out'): self.device = devices.ThreadMonitoredQueue(zmq.PAIR, zmq.PAIR, zmq.PUB, in_prefix, out_prefix) alice = self.context.socket(zmq.PAIR) bob = self.context.socket(zmq.PAIR) mon = self.context.socket(zmq.SUB) aport = alice.bind_to_random_port('tcp://127.0.0.1') bport = bob.bind_to_random_port('tcp://127.0.0.1') mport = mon.bind_to_random_port('tcp://127.0.0.1') mon.setsockopt(zmq.SUBSCRIBE, mon_sub) self.device.connect_in("tcp://127.0.0.1:%i"%aport) self.device.connect_out("tcp://127.0.0.1:%i"%bport) self.device.connect_mon("tcp://127.0.0.1:%i"%mport) self.device.start() time.sleep(.2) try: # this is currenlty necessary to ensure no dropped monitor messages # see LIBZMQ-248 for more info mon.recv_multipart(zmq.NOBLOCK) except zmq.ZMQError: pass self.sockets.extend([alice, bob, mon]) return alice, bob, mon
Example #10
Source File: zstack.py From indy-plenum with Apache License 2.0 | 6 votes |
def _receiveFromListener(self, quota: Quota) -> int: """ Receives messages from listener :param quota: number of messages to receive :return: number of received messages """ i = 0 incoming_size = 0 try: ident, msg = self.listener.recv_multipart(flags=zmq.NOBLOCK) if msg: # Router probing sends empty message on connection incoming_size += len(msg) i += 1 self._verifyAndAppend(msg, ident) except zmq.Again as e: return i except zmq.ZMQError as e: print("Strange ZMQ behaviour during node-to-node message receiving, experienced {}".format(e)) if i > 0: print('{} got {} messages through listener'. format(self, i)) return i
Example #11
Source File: discovery.py From networkzero with MIT License | 6 votes |
def _bind_with_timeout(bind_function, args, n_tries=3, retry_interval_s=0.5): """Attempt to bind a socket a number of times with a short interval in between Especially on Linux, crashing out of a networkzero process can leave the sockets lingering and unable to re-bind on startup. We give it a few goes here to see if we can bind within a couple of seconds. """ n_tries_left = n_tries while n_tries_left > 0: try: return bind_function(*args) except zmq.error.ZMQError as exc: _logger.warn("%s; %d tries remaining", exc, n_tries_left) n_tries_left -= 1 except OSError as exc: if exc.errno == errno.EADDRINUSE: _logger.warn("%s; %d tries remaining", exc, n_tries_left) n_tries_left -= 1 else: raise else: raise core.SocketAlreadyExistsError("Failed to bind after %s tries" % n_tries)
Example #12
Source File: discovery.py From networkzero with MIT License | 6 votes |
def poll_command_request(self): """If the command RPC socket has an incoming request, separate it into its action and its params and put it on the command request queue. """ try: message = self.rpc.recv(zmq.NOBLOCK) except zmq.ZMQError as exc: if exc.errno == zmq.EAGAIN: return else: raise _logger.debug("Received command %s", message) segments = _unpack(message) action, params = segments[0], segments[1:] _logger.debug("Adding %s, %s to the request queue", action, params) self._command = _Command(action, params)
Example #13
Source File: zmqstream.py From Computable with MIT License | 6 votes |
def _handle_recv(self): """Handle a recv event.""" if self._flushed: return try: msg = self.socket.recv_multipart(zmq.NOBLOCK, copy=self._recv_copy) except zmq.ZMQError as e: if e.errno == zmq.EAGAIN: # state changed since poll event pass else: gen_log.error("RECV Error: %s"%zmq.strerror(e.errno)) else: if self._recv_callback: callback = self._recv_callback # self._recv_callback = None self._run_callback(callback, msg) # self.update_state()
Example #14
Source File: channels.py From Computable with MIT License | 6 votes |
def _run_loop(self): """Run my loop, ignoring EINTR events in the poller""" while True: try: self.ioloop.start() except ZMQError as e: if e.errno == errno.EINTR: continue else: raise except Exception: if self._exiting: break else: raise else: break
Example #15
Source File: server.py From testplan with Apache License 2.0 | 6 votes |
def receive(self, timeout=30): """ Try to send the message until it either has been received or hits timeout. :param timeout: Timeout to retry receiving the message :type timeout: ``int`` :return: The received message :rtype: ``object`` or ``str`` or ``zmq.sugar.frame.Frame`` """ return retry_until_timeout( exception=zmq.ZMQError, item=self._socket.recv, kwargs={"flags": zmq.NOBLOCK}, timeout=timeout, raise_on_timeout=True, )
Example #16
Source File: socket.py From Computable with MIT License | 6 votes |
def get_hwm(self): """get the High Water Mark On libzmq ≥ 3, this gets SNDHWM if available, otherwise RCVHWM """ major = zmq.zmq_version_info()[0] if major >= 3: # return sndhwm, fallback on rcvhwm try: return self.getsockopt(zmq.SNDHWM) except zmq.ZMQError as e: pass return self.getsockopt(zmq.RCVHWM) else: return self.getsockopt(zmq.HWM)
Example #17
Source File: client.py From testplan with Apache License 2.0 | 6 votes |
def disconnect(self): """ Disconnect the client socket from all configured connections if still connected. """ if self._socket.closed: return for i, host in enumerate(self._hosts): try: self._socket.disconnect( "tcp://{host}:{port}".format( host=host, port=self._ports[i] ) ) except zmq.ZMQError as exc: if str(exc) != "No such file or directory": raise exc
Example #18
Source File: client.py From testplan with Apache License 2.0 | 6 votes |
def send(self, data, timeout=30): """ Try to send the message until it either sends or hits timeout. :param data: The content of the message. :type data: ``bytes`` or ``zmq.sugar.frame.Frame`` or ``memoryview`` :param timeout: Timeout to retry sending the message. :type timeout: ``int`` :return: ``None`` :rtype: ``NoneType`` """ return retry_until_timeout( exception=zmq.ZMQError, item=self._socket.send, kwargs={"data": data, "flags": zmq.NOBLOCK}, timeout=timeout, raise_on_timeout=True, )
Example #19
Source File: client.py From testplan with Apache License 2.0 | 6 votes |
def receive(self, timeout=30): """ Try to receive the message until it has either been received or hits timeout. :param timeout: Timeout to retry receiving the message. :type timeout: ``int`` :return: The received message. :rtype: ``bytes`` or ``zmq.sugar.frame.Frame`` or ``memoryview`` """ return retry_until_timeout( exception=zmq.ZMQError, item=self._socket.recv, kwargs={"flags": zmq.NOBLOCK}, timeout=timeout, raise_on_timeout=True, )
Example #20
Source File: brokerzmq.py From scoop with GNU Lesser General Public License v3.0 | 6 votes |
def shutdown(self): # This send may raise an ZMQError # Looping over it until it gets through for i in range(100): try: self.info_socket.send(SHUTDOWN) except zmq.ZMQError: time.sleep(0.01) else: break time.sleep(0.1) self.context.destroy(1000) # Write down statistics about this run if asked if self.debug: self.writeDebug()
Example #21
Source File: robot.py From networkzero with MIT License | 6 votes |
def get_command(self): """Attempt to return a unicode object from the command socket If no message is available without blocking (as opposed to a blank message), return None """ try: message_bytes = self.socket.recv(zmq.NOBLOCK) log.debug("Received message: %r", message_bytes) except zmq.ZMQError as exc: if exc.errno == zmq.EAGAIN: return None else: raise else: return message_bytes.decode(config.CODEC)
Example #22
Source File: thread.py From pySINDy with MIT License | 6 votes |
def run(self): """Start the Authentication Agent thread task""" self.authenticator.start() self.started.set() zap = self.authenticator.zap_socket poller = zmq.Poller() poller.register(self.pipe, zmq.POLLIN) poller.register(zap, zmq.POLLIN) while True: try: socks = dict(poller.poll()) except zmq.ZMQError: break # interrupted if self.pipe in socks and socks[self.pipe] == zmq.POLLIN: terminate = self._handle_pipe() if terminate: break if zap in socks and socks[zap] == zmq.POLLIN: self._handle_zap() self.pipe.close() self.authenticator.stop()
Example #23
Source File: socket.py From pySINDy with MIT License | 6 votes |
def get_hwm(self): """Get the High Water Mark. On libzmq ≥ 3, this gets SNDHWM if available, otherwise RCVHWM """ major = zmq.zmq_version_info()[0] if major >= 3: # return sndhwm, fallback on rcvhwm try: return self.getsockopt(zmq.SNDHWM) except zmq.ZMQError: pass return self.getsockopt(zmq.RCVHWM) else: return self.getsockopt(zmq.HWM)
Example #24
Source File: _future.py From vnpy_crypto with MIT License | 5 votes |
def poll(self, timeout=None, flags=_zmq.POLLIN): """poll the socket for events returns a Future for the poll results. """ if self.closed: raise _zmq.ZMQError(_zmq.ENOTSUP) p = self._poller_class() p.register(self, flags) f = p.poll(timeout) future = self._Future() def unwrap_result(f): if future.done(): return if f.exception(): future.set_exception(f.exception()) else: evts = dict(f.result()) future.set_result(evts.get(self, 0)) if f.done(): # hook up result if unwrap_result(f) else: f.add_done_callback(unwrap_result) return future
Example #25
Source File: core.py From Computable with MIT License | 5 votes |
def send(self, data, flags=0, copy=True, track=False): """send, which will only block current greenlet state_changed always fires exactly once (success or fail) at the end of this method. """ # if we're given the NOBLOCK flag act as normal and let the EAGAIN get raised if flags & zmq.NOBLOCK: try: msg = super(_Socket, self).send(data, flags, copy, track) finally: if not self.__in_send_multipart: self.__state_changed() return msg # ensure the zmq.NOBLOCK flag is part of flags flags |= zmq.NOBLOCK while True: # Attempt to complete this operation indefinitely, blocking the current greenlet try: # attempt the actual call msg = super(_Socket, self).send(data, flags, copy, track) except zmq.ZMQError as e: # if the raised ZMQError is not EAGAIN, reraise if e.errno != zmq.EAGAIN: if not self.__in_send_multipart: self.__state_changed() raise else: if not self.__in_send_multipart: self.__state_changed() return msg # defer to the event loop until we're notified the socket is writable self._wait_write()
Example #26
Source File: heartbeat.py From Computable with MIT License | 5 votes |
def run(self): self.socket = self.context.socket(zmq.REP) c = ':' if self.transport == 'tcp' else '-' self.socket.bind('%s://%s' % (self.transport, self.ip) + c + str(self.port)) while True: try: zmq.device(zmq.FORWARDER, self.socket, self.socket) except zmq.ZMQError as e: if e.errno == errno.EINTR: continue else: raise else: break
Example #27
Source File: ipkernel.py From Computable with MIT License | 5 votes |
def _raw_input(self, prompt, ident, parent): # Flush output before making the request. sys.stderr.flush() sys.stdout.flush() # flush the stdin socket, to purge stale replies while True: try: self.stdin_socket.recv_multipart(zmq.NOBLOCK) except zmq.ZMQError as e: if e.errno == zmq.EAGAIN: break else: raise # Send the input request. content = json_clean(dict(prompt=prompt)) self.session.send(self.stdin_socket, u'input_request', content, parent, ident=ident) # Await a response. while True: try: ident, reply = self.session.recv(self.stdin_socket, 0) except Exception: self.log.warn("Invalid Message:", exc_info=True) except KeyboardInterrupt: # re-raise KeyboardInterrupt, to truncate traceback raise KeyboardInterrupt else: break try: value = py3compat.unicode_to_str(reply['content']['value']) except: self.log.error("Got bad raw_input reply: ") self.log.error("%s", parent) value = '' if value == '\x04': # EOF raise EOFError return value
Example #28
Source File: session.py From Computable with MIT License | 5 votes |
def recv(self, socket, mode=zmq.NOBLOCK, content=True, copy=True): """Receive and unpack a message. Parameters ---------- socket : ZMQStream or Socket The socket or stream to use in receiving. Returns ------- [idents], msg [idents] is a list of idents and msg is a nested message dict of same format as self.msg returns. """ if isinstance(socket, ZMQStream): socket = socket.socket try: msg_list = socket.recv_multipart(mode, copy=copy) except zmq.ZMQError as e: if e.errno == zmq.EAGAIN: # We can convert EAGAIN to None as we know in this case # recv_multipart won't return None. return None,None else: raise # split multipart message into identity list and message dict # invalid large messages can cause very expensive string comparisons idents, msg_list = self.feed_identities(msg_list, copy) try: return idents, self.unserialize(msg_list, content=content, copy=copy) except Exception as e: # TODO: handle it raise e
Example #29
Source File: server.py From testplan with Apache License 2.0 | 5 votes |
def send(self, data, timeout=30): """ Try to send the message until it either sends or hits timeout. :param timeout: Timeout to retry sending the message :type timeout: ``int`` """ return retry_until_timeout( exception=zmq.ZMQError, item=self._socket.send, kwargs={"data": data, "flags": zmq.NOBLOCK}, timeout=timeout, raise_on_timeout=True, )
Example #30
Source File: util.py From Computable with MIT License | 5 votes |
def set_hwm(sock, hwm=0): """set zmq High Water Mark on a socket in a way that always works for various pyzmq / libzmq versions. """ import zmq for key in ('HWM', 'SNDHWM', 'RCVHWM'): opt = getattr(zmq, key, None) if opt is None: continue try: sock.setsockopt(opt, hwm) except zmq.ZMQError: pass