讲师中心 微信公众号
AI工具推荐 视频效率加速

Python限速与重试教程_请求稳定性控制

浅辰酱_2506

浅辰酱_2506

发布时间:2026-01-11 17:01:15

|

334人浏览过

|

来源于php中文网

原创

Python中控制请求稳定性需结合限速与重试:限速应依据服务端速率限制(如X-RateLimit头)合理节制,推荐ratelimit库或手动计时;重试需针对临时错误(如超时、5xx),用tenacity实现指数退避并加抖动;二者可封装进requests.Session子类统一管理,并辅以日志监控调优。

python限速与重试教程_请求稳定性控制

Python中控制请求稳定性,核心是限速(避免触发反爬或服务限流)和重试(应对网络抖动、临时错误),二者配合使用才能让爬虫或API调用更健壮。

限速:控制请求频率

限速不是简单地加time.sleep(),而是要根据目标服务的允许速率(如每秒1次、每分钟100次)合理节制。推荐用ratelimit库或time.sleep()配合计时逻辑。

  • 用ratelimit装饰器最直观:
    pip install ratelimit
    然后在请求函数上加@sleep_and_retry @limits(calls=5, period=60),表示每60秒最多调用5次
  • 手动限速更灵活:记录每次请求时间,下一次发起前检查间隔是否达标,适合动态调整速率的场景
  • 注意HTTP响应头中的X-RateLimit-Remaining和Retry-After,它们是服务端给出的真实限速信号,应优先遵循

重试:自动恢复临时失败

网络请求常因超时、502、503、连接中断等短暂失败,重试能显著提升成功率,但需避免无脑重试加重服务压力。

Remix V2 Meta Sessions Review
Remix V2 Meta Sessions Review

审查 Remix v2 代码中的 v1 形态 meta 导出(v2 中为破坏性变更),cookie 安全漏洞(httpOnly、secure、密钥轮换),认证门位于错误层级,以及其他

下载
  • 推荐用tenacity库(比retrying更现代):
    pip install tenacity
    搭配@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=1, max=10))实现指数退避
  • 只对可重试错误重试:比如requests.exceptions.ConnectionError、Timeout、状态码5xx;而404或401通常不该重试
  • 重试时建议加随机抖动(jitter),防止大量请求在同一时刻重试造成雪崩

requests + 限速 + 重试的一体化写法

把限速与重试封装进requests.Session子类,复用性强、逻辑集中:

立即学习“Python免费学习笔记(深入)”;

  • 继承requests.Session,在request()方法里插入限速检查和异常捕获逻辑
  • 用functools.lru_cache缓存限速计时器状态(按host或endpoint维度)
  • 结合tenacity装饰内部请求方法,或直接在except块里手动循环+延时重试
  • 示例场景:调用某API每秒不超过2次,失败时最多重试3次,间隔1s→2s→4s

实际调试与监控建议

光写逻辑不够,得看得见效果,才好调优:

  • 记录每次请求耗时、状态码、是否重试、重试次数,输出到日志或简易指标(如prometheus Counter)
  • 用curl -v或浏览器开发者工具看真实响应头,验证限速策略是否匹配服务端要求
  • 压测时观察错误率突增点,反推服务端实际限流阈值,再微调本地策略
  • 避免“过度防御”:比如对稳定内网服务也套重试+限速,反而拖慢整体性能

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

3250

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

7403

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

9042

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

4667

2025.07.23

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

580

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

876

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

1926

2025.08.19

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3743

2023.06.14

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

40

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn