在python中设置全局套接字超时的正确方法是什么?

时间:2014-02-06 12:24:41

标签: python sockets python-requests httplib urllib3

我使用了许多不同的库,每个库都使用不同的底层方式来建立套接字连接,比如urllib3,requests和httplib。这是在python 2.7.5。

定期,程序挂起其中一个库,等待网络IO完成。

我尝试过socket.setdefaulttimeout(1.0)和socket._GLOBAL_DEFAULT_TIMEOUT = 1.0,但对我的程序都没有任何影响。

设置全局套接字超时的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

正如函数的名称所暗示的那样,setdefaulttimeout只是默认值。如果任何其他库在套接字上设置超时,它将覆盖此默认值。 所以我认为别无选择,只能明确地在每个库中设置超时

可以找到完整的答案here