我试图使用python的HTTPConnection来进行一些长时间运行的远程过程调用(~30秒)
httplib.HTTPConnection(..., timeout=45)
解决了这个问题。但是,这意味着失败的连接尝试将导致痛苦的漫长等待。我可以独立控制套接字的读取和连接超时 - 我可以在使用HTTPConnection时执行此操作吗?
答案 0 :(得分:0)
我知道您不是在等待发送请求,但是如果您首先处理连接失败,则不必等待,即不要在第一个请求中包含timeout参数,如下所示:
httplib.HTTPSConnection ('url' )
headers ={'Connection' : 'Keep-Alive'}
conn.request("request blank", headers) #dummy request to open a conn and keep it alive
dummy_response = conn.getresponse()
if dummmy_response == 200 or dummy_response == 201: #if ok, do work with conn
conn.request("request real", timeout = 25)
else:
reconnect. #restart the dummy request
只是一个建议,你可以随时提出问题或再次回答。