password
查看人数
type
status
date
slug
summary
category
icon
tags
作者
状态
线上一个项目定时去获取汇率,结果有有段时间没有更新了,调查发现有半个月没有执行成功。定时任务是执行了的,但是没有执行成功。
python requests发起请求默认没有设置超时时间
Java也有这个问题,官网公布[JDK-8075484]即使设置了 soTimeout,SocketInputStream.socketRead0 也可以挂起 - Java Bug System (openjdk.org)
没有超时时间,有可能造成阻塞,一致不关闭连接,导致阻塞,
解决办法:
添加超时时间
Python Requests库的默认请求超时时间是None,表示永不超时。
如果需要设置超时时间,可以通过传递timeout参数来指定超时秒数。比如:
这段代码将请求的超时时间设置为3秒。
另外,超时时间还可以分别为:连接超时时间和读取超时时间设置不同的值:
这里将接超时时间设为3秒,读取超时时间设为10秒。
Python Requests的默认超时行为是永不超时,但我们可以很容易地通过timeout参数来自定义超时时间。
python 常用请求库超时时间设置
- requests:开始讲过requests可以通过timeout参数直接设置整个请求的超时时间,很方便。
- urllib:Python自带的urllib模块,通过urlopen()和Request()可以设置timeout参数:
- httpx:这是一个比较新且强大的HTTP客户端库,默认的超时时间是5秒。可以通过timeout参数自定义。
- aiohttp:这是一个异步HTTP库,对于异步调用可以通过timeout参数设置
有关使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:躁静有徒
- 链接:https://blog.zaojingyoutu.top//article/9e4d16b1-38cf-4594-8b4c-a842eb4a14d4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章