0

0

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

冷炫風刃

冷炫風刃

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

|

234人浏览过

|

来源于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-RemainingRetry-After,它们是服务端给出的真实限速信号,应优先遵循

重试:自动恢复临时失败

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

VIVA
VIVA

一个免费的AI创意视觉设计平台

下载
  • 推荐用tenacity库(比retrying更现代):
    pip install tenacity
    搭配@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=1, max=10))实现指数退避
  • 只对可重试错误重试:比如requests.exceptions.ConnectionErrorTimeout状态码5xx;而404401通常不该重试
  • 重试时建议加随机抖动(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工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

373

2023.10.09

更新pip版本
更新pip版本

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

436

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、保存并关闭文件即可。

802

2024.12.23

python升级pip
python升级pip

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

370

2025.07.23

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

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

334

2023.10.17

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

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

776

2023.10.18

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

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

97

2025.08.19

curl_exec
curl_exec

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

454

2023.06.14

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号