コード例 #1
0
class GeventServer(StreamServer):
    def __init__(self, processor, *args, **kwargs):
        self.processor = processor
        self.transport_factory = TBufferedTransportFactory()
        self.protocol_factory = THeaderProtocolFactory()
        super(GeventServer, self).__init__(*args, **kwargs)

    def serve_forever(self, stop_timeout=None):
        signal.signal(signal.SIGINT, lambda sig, frame: self.stop())
        signal.signal(signal.SIGTERM, lambda sig, frame: self.stop())
        super(GeventServer, self).serve_forever(stop_timeout=stop_timeout)

    def handle(self, client_socket, address):
        client = TSocket()
        client.setHandle(client_socket)

        itrans = self.transport_factory.getTransport(client)
        iprot = self.protocol_factory.getProtocol(itrans)

        otrans = self.transport_factory.getTransport(client)
        oprot = self.protocol_factory.getProtocol(otrans)

        server_context = TRpcConnectionContext(client, iprot, oprot)

        try:
            while self.started:
                self.processor.process(iprot, oprot, server_context)
        except TTransportException:
            pass
        finally:
            itrans.close()
            otrans.close()
コード例 #2
0
ファイル: thrift.py プロジェクト: Omosofe/baseplate
class GeventServer(StreamServer):
    def __init__(self, processor, *args, **kwargs):
        self.processor = processor
        self.transport_factory = TBufferedTransportFactory()
        self.protocol_factory = THeaderProtocolFactory()
        super(GeventServer, self).__init__(*args, **kwargs)

    def serve_forever(self, stop_timeout=None):
        signal.signal(signal.SIGINT, lambda sig, frame: self.stop())
        signal.signal(signal.SIGTERM, lambda sig, frame: self.stop())
        super(GeventServer, self).serve_forever(stop_timeout=stop_timeout)

    def handle(self, client_socket, address):
        client = TSocket()
        client.setHandle(client_socket)

        itrans = self.transport_factory.getTransport(client)
        iprot = self.protocol_factory.getProtocol(itrans)

        otrans = self.transport_factory.getTransport(client)
        oprot = self.protocol_factory.getProtocol(otrans)

        server_context = TRpcConnectionContext(client, iprot, oprot)

        try:
            while self.started:
                self.processor.process(iprot, oprot, server_context)
        except TTransportException:
            pass
        finally:
            itrans.close()
            otrans.close()
コード例 #3
0
ファイル: thrift.py プロジェクト: WeilerWebServices/Reddit
class GeventServer(StreamServer):
    def __init__(self, processor: TProcessor, *args: Any, **kwargs: Any):
        self.processor = processor
        self.transport_factory = TBufferedTransportFactory()
        self.protocol_factory = THeaderProtocolFactory(
            # allow non-headerprotocol clients to talk with us
            allowed_client_types=[
                THeaderClientType.HEADERS,
                THeaderClientType.FRAMED_BINARY,
                THeaderClientType.UNFRAMED_BINARY,
            ])
        super().__init__(*args, **kwargs)

    # pylint: disable=method-hidden,unused-argument
    def handle(self, client_socket: socket.socket, address: Address) -> None:
        client = TSocket()
        client.setHandle(client_socket)

        trans = self.transport_factory.getTransport(client)
        prot = self.protocol_factory.getProtocol(trans)

        try:
            while self.started:
                self.processor.process(prot, prot)
        except TTransportException:
            pass
        finally:
            trans.close()
コード例 #4
0
ファイル: thrift.py プロジェクト: mattknox/baseplate
class GeventServer(StreamServer):
    def __init__(self, processor, *args, **kwargs):
        self.processor = processor
        self.transport_factory = TBufferedTransportFactory()
        self.protocol_factory = THeaderProtocolFactory(
            # allow non-headerprotocol clients to talk with us
            allowed_client_types=[
                THeaderClientType.HEADERS,
                THeaderClientType.FRAMED_BINARY,
                THeaderClientType.UNFRAMED_BINARY,
            ], )
        super(GeventServer, self).__init__(*args, **kwargs)

    def serve_forever(self, stop_timeout=None):
        signal.signal(signal.SIGINT, lambda sig, frame: self.stop())
        signal.signal(signal.SIGTERM, lambda sig, frame: self.stop())
        super(GeventServer, self).serve_forever(stop_timeout=stop_timeout)

    # pylint: disable=method-hidden
    def handle(self, client_socket, _):
        client = TSocket()
        client.setHandle(client_socket)

        trans = self.transport_factory.getTransport(client)
        prot = self.protocol_factory.getProtocol(trans)

        try:
            while self.started:
                self.processor.process(prot, prot)
        except TTransportException:
            pass
        finally:
            trans.close()
コード例 #5
0
ファイル: thrift.py プロジェクト: pacejackson/baseplate
class GeventServer(StreamServer):
    def __init__(self, processor, *args, **kwargs):
        self.processor = processor
        self.transport_factory = TBufferedTransportFactory()
        self.protocol_factory = THeaderProtocolFactory(
            # allow non-headerprotocol clients to talk with us
            client_types=[
                THeaderTransport.HEADERS_CLIENT_TYPE,
                THeaderTransport.FRAMED_DEPRECATED,
                THeaderTransport.UNFRAMED_DEPRECATED,
            ],
        )
        super(GeventServer, self).__init__(*args, **kwargs)

    def serve_forever(self, stop_timeout=None):
        signal.signal(signal.SIGINT, lambda sig, frame: self.stop())
        signal.signal(signal.SIGTERM, lambda sig, frame: self.stop())
        super(GeventServer, self).serve_forever(stop_timeout=stop_timeout)

    # pylint: disable=method-hidden
    def handle(self, client_socket, _):
        client = TSocket()
        client.setHandle(client_socket)

        itrans = self.transport_factory.getTransport(client)
        iprot = self.protocol_factory.getProtocol(itrans)

        otrans = self.transport_factory.getTransport(client)
        oprot = self.protocol_factory.getProtocol(otrans)

        server_context = TRpcConnectionContext(client, iprot, oprot)

        try:
            while self.started:
                self.processor.process(iprot, oprot, server_context)
        except TTransportException:
            pass
        finally:
            itrans.close()
            otrans.close()