Пример #1
0
 def __del__(self):
     try:
         self._s_dealer.close()
         self._w_dealer.close()
         util.close_zmq_ctx(self._zmq_ctx)
     except Exception:
         pass
Пример #2
0
 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)
Пример #3
0
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
Пример #4
0
 def close(self):
     self.router_sock.close()
     self.pub_sock.close()
     util.close_zmq_ctx(self.zmq_ctx)
     os._exit(1)
Пример #5
0
 def _cleanup(self):
     self._result_sock.close()
     util.close_zmq_ctx(self._zmq_ctx)
Пример #6
0
 def __del__(self):
     try:
         self._task_push.close()
         util.close_zmq_ctx(self._zmq_ctx)
     except Exception:
         pass