sh0*_*731 6 python-3.x python-requests
Python的请求库仅支持连接超时并阅读 http://docs.python-requests.org/en/master/user/advanced/#timeouts
当DNS查找需要很长时间时,无法强制超时.我想在超过X秒完成GET请求(包括DNS,连接和读取)时触发超时.
请注意,我不能使用基于信号的方法,因为它只适用于主线程.
我正在寻找一个优雅的解决方案.
getaddrinfo我认为除了信号之外不可能中断底层C 标准库函数。
所以恕我直言,你只能通过多重处理来解决你的问题 - 例如使用timeout_decorator模块的优雅方法:
@timeout_decorator.timeout(5, use_signals=False)
def timed_get(url):
return requests.get(url)
Run Code Online (Sandbox Code Playgroud)
但请记住,这将为每个请求创建一个进程。
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |