Пример #1
0
    def init_event_channel(self):
        """Create a thrift server and register it at ZLP Service to receive events."""
        if self._event_channel_handler and not self._event_channel:
            processor = TProcessor(self.thrift_interface.ClientEventChannel,
                                   self._event_channel_handler)
            server_socket = TServerSocket(host="0.0.0.0",
                                          port=0,
                                          socket_family=socket.AF_INET,
                                          client_timeout=200000)
            server_socket.client_timeout = 1000 * 60 * 10
            self._event_channel = TSimpleServer(processor, server_socket)

            t = threading.Thread(target=self._event_channel.serve, daemon=True)
            t.start()

            time.sleep(1)
            connection = self._event_channel.trans.sock.getsockname()
            self.ConnectClientEventChannel(connection[1])