Notion Blog
心情随笔1 分钟阅读

发起请求被阻塞挂起

线上一个项目定时去获取汇率,结果有有段时间没有更新了,调查发现有半个月没有执行成功。定时任务是执行了的,但是没有执行成功。

python requests发起请求默认没有设置超时时间

没有超时时间,有可能造成阻塞,一致不关闭连接,导致阻塞,

解决办法:

添加超时时间

Python Requests库的默认请求超时时间是None,表示永不超时。

如果需要设置超时时间,可以通过传递timeout参数来指定超时秒数。比如:

pythonCopy codeimport requests

resp = requests.get('http://www.example.com', timeout=3)

这段代码将请求的超时时间设置为3秒。

另外,超时时间还可以分别为:连接超时时间和读取超时时间设置不同的值:

pythonCopy coderesp = requests.get('http://www.example.com', timeout=(3, 10))

这里将接超时时间设为3秒,读取超时时间设为10秒。

Python Requests的默认超时行为是永不超时,但我们可以很容易地通过timeout参数来自定义超时时间。

python 常用请求库超时时间设置

requests:开始讲过requests可以通过timeout参数直接设置整个请求的超时时间,很方便。
urllib:Python自带的urllib模块,通过urlopen()和Request()可以设置timeout参数:
pythonCopy codeimport urllib.request

req = urllib.request.Request('http://www.example.com')
req.timeout = 3# 设置超时时间为3秒
urllib.request.urlopen(req)
httpx:这是一个比较新且强大的HTTP客户端库,默认的超时时间是5秒。可以通过timeout参数自定义。
aiohttp:这是一个异步HTTP库,对于异步调用可以通过timeout参数设置

有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。