def _try_register(self, connection):
        if not self._connection_manager.live:
            # There is no point on trying the register a backup listener
            # if the client is about to shutdown.
            return

        if self._listener_added_connection:
            return

        self._listener_added_connection = connection
        request = client_add_cluster_view_listener_codec.encode_request()
        invocation = Invocation(request,
                                connection=connection,
                                event_handler=self._handler(connection),
                                urgent=True)
        self._cluster_service.clear_member_list_version()
        self._invocation_service.invoke(invocation)

        def callback(f):
            try:
                f.result()
            except:
                self._try_register_to_random_connection(connection)

        invocation.future.add_done_callback(callback)
Beispiel #2
0
    def _try_register(self, connection):
        if self._listener_added_connection:
            return

        self._cluster_service.clear_member_list_version()
        self._listener_added_connection = connection
        request = client_add_cluster_view_listener_codec.encode_request()
        invocation = Invocation(request,
                                connection=connection,
                                event_handler=self._handler(connection),
                                urgent=True)
        self._invocation_service.invoke(invocation)

        def callback(f):
            try:
                f.result()
            except:
                self._try_register_to_random_connection(connection)

        invocation.future.add_done_callback(callback)