Socket.timeout error when using thrift rpc call?

Viewed 517

I'm using thrift client in python to communicate with a server for a long time calculation work. Then I tried to set a timeout at my client side. But I always get a socket timeout error.

Main code infomation as below:

# 1 client
tsocket = TSocket.TSocket("127.0.0.1", 9808)
tsocket.setTimeout(1000*1500) # set to 1500s
transport = TTransport.TFramedTransport(tsocket)
protocol = TBinaryProtocol.TBinaryProtocol(transport)

client = interaction_client(protocol)
transport.open()

# client.do_sth()...




# 2 server 

handler = InteractionHandler()
processor = interaction_processor(handler)
socket = TSocket.TServerSocket("127.0.0.1", 9808)

server = TNonblockingServer.TNonblockingServer(processor, socket)
server.serve()


I always get socket.timeout: timed out like:

    pivot_table_data = self.client.get_pivotable(params)
  File "/usr/local/services/analysis/thrift/Analysis.py", line 45, in get_pivotable
    return self.recv_get_pivotable()
  File "/usr/localservices/analysis/thrift/Analysis.py", line 57, in recv_get_pivotable
    (fname, mtype, rseqid) = iprot.readMessageBegin()
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/protocol/TBinaryProtocol.py", line 134, in readMessageBegin
    sz = self.readI32()
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/protocol/TBinaryProtocol.py", line 217, in readI32
    buff = self.trans.readAll(4)
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/transport/TTransport.py", line 60, in readAll
    chunk = self.read(sz - have)
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/transport/TTransport.py", line 281, in read
    self.readFrame()
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/transport/TTransport.py", line 285, in readFrame
    buff = self.__trans.readAll(4)
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/transport/TTransport.py", line 60, in readAll
    chunk = self.read(sz - have)
  File "/data/home/server/venv3.6/lib/python3.6/site-packages/thrift/transport/TSocket.py", line 117, in read
    buff = self.handle.recv(sz)
socket.timeout: timed out

How can I avoid this error?

Thanks

0 Answers
Related