Non-blocking Thrift Server in Python

In the code snippet below, I'm trying to create a non-blocking lean server in python.

# set handler to our implementation handler = ServiceHandler() processor = MyService.Processor(handler) transport = TSocket.TServerSocket(port=port) tfactory = TTransport.TFramedTransport(transport) pfactory = TBinaryProtocol.TBinaryProtocolFactory() # set server server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) print 'Python Server has started listening on port ' + str(port) print '################################################' server.serve() 

I get the following error when a python client tries to connect a server having the above code snippet. Could you tell me what might cause this error? I guess I'm missing something.

  Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib64/python2.6/threading.py", line 522, in __bootstrap_inner self.run() File "/usr/lib64/python2.6/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/lib64/python2.6/site-packages/thrift/server/TServer.py", line 114, in handle itrans = self.inputTransportFactory.getTransport(client) AttributeError: TFramedTransport instance has no attribute 'getTransport' 
+4
source share
1 answer

I found some working Thrift code , and it looks like your tfactory should be TBufferedTransportFactory and not an instance of TBufferedTransport.

 tfactory = TTransport.TBufferedTransportFactory() 
+8
source

Source: https://habr.com/ru/post/1384675/


All Articles