def __del__(self): try: self._s_dealer.close() self._w_dealer.close() util.close_zmq_ctx(self._zmq_ctx) except Exception: pass
def close(self): """ Close this State and disconnect with the Server. """ self._dealer_sock.close() self._push_sock.close() self._active_sub_sock.close() util.close_zmq_ctx(self._zmq_ctx)
def start_server(server_address: str = None, *, backend: Callable = multiprocessing.Process, secret_key: str = None): """ Start a new zproc server. :param server_address: The zproc server's address. If it is set to ``None``, then a random address will be generated. Please read :ref:`server-address-spec` for a detailed explanation. :param backend: The backend to use for launching the server process. For example, you may use ``threading.Thread`` as the backend. .. warning:: Not guaranteed to work well with anything other than ``multiprocessing.Process``. :return: ``tuple``, containing a ``multiprocessing.Process`` object for server and the server address. """ zmq_ctx = util.create_zmq_ctx() sock = zmq_ctx.socket(zmq.PULL) pull_address = util.bind_to_random_address(sock) serializer = util.get_serializer(secret_key) server_process = backend( target=lambda *args, **kwargs: Server(*args, **kwargs).main(), args=[server_address, pull_address, secret_key], daemon=True, ) server_process.start() try: server_address = util.recv(sock, serializer) except zmq.ZMQError as e: if e.errno == 98: raise ConnectionError( "Encountered - %s. Perhaps the server is already running?" % repr(e)) if e.errno == 22: raise ValueError( "Encountered - %s. `server_address` must be a string containing a valid endpoint." % repr(e)) raise finally: sock.close() util.close_zmq_ctx(zmq_ctx) return server_process, server_address
def close(self): self.router_sock.close() self.pub_sock.close() util.close_zmq_ctx(self.zmq_ctx) os._exit(1)
def _cleanup(self): self._result_sock.close() util.close_zmq_ctx(self._zmq_ctx)
def __del__(self): try: self._task_push.close() util.close_zmq_ctx(self._zmq_ctx) except Exception: pass