我已经使用节俭构建了一些rpc服务。每次调用可能会运行很长时间(分钟到几小时(。我已将节俭超时设置为 2 天。
transport = TSocket.TSocket(self.__host, self.__port)
transport.setTimeout(2 * 24 * 60 * 60 * 1000)
但是节俭总是在大约 600 秒后关闭连接,但以下情况除外:
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
我应该设置其他超时吗?(python,Thrift Server:Windows;客户端:Ubuntu(
节俭运输连接正在断开。这可能是由于网络问题或远程服务重启或超时问题。每当断开连接后进行任何呼叫时,这都会导致 TTransportException。此问题可以通过重新连接到远程服务来解决。 尝试使用它,在进行远程服务调用之前调用它。
def repoen_transport():
try:
if not transport.isOpen():
transport.open()
except Exception, msg:
print >> sys.stderr.write("Error reopening transport {}".format(msg))