httplib.HTTPConnection timeout:connect vs其他阻塞调用

时间:2015-07-23 22:52:57

标签: python sockets httplib httplib2

我试图使用python的HTTPConnection来进行一些长时间运行的远程过程调用(~30秒)

httplib.HTTPConnection(..., timeout=45)

解决了这个问题。但是,这意味着失败的连接尝试将导致痛苦的漫长等待。我可以独立控制套接字的读取和连接超时 - 我可以在使用HTTPConnection时执行此操作吗?

1 个答案:

答案 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

只是一个建议,你可以随时提出问题或再次回答。