Python 中设置请求的最大重试次数示例代码

 更新时间:2023年06月07日 10:48:25   作者:迹忆客  
本篇文章介绍了为什么我们会收到错误消息,指出超出了最大重试次数,以及我们如何在 Python 中为请求设置 max_retries,本文通过示例代码给大家介绍的非常详细,需要的朋友参考下吧

本篇文章介绍了为什么我们会收到错误消息,指出超出了最大重试次数,以及我们如何在 Python 中为请求设置 max_retries。 如果服务器上的负载导致此错误,它还会为我们提供提示。

Python中设置请求max_retries的错误,的原因和解决方案

在继续查看如何在 Python 中为请求设置 max_retries 之前,让我们先解决一些问题。

  • 首先,如果您的 URL 不正确,就会发生此错误。 因此,您需要检查您请求的 URL 是否有效。
  • 此错误也可能由于互联网连接而发生,因此请确保您没有遇到所有此类问题。
  • 当服务器过载时,我们也会收到此错误。 当服务器繁忙时,您可能会遇到此类错误。

这就是增加请求 URL 的重试次数的现象来帮助我们的地方。 因此,让我们了解如何做到这一点。 但是,首先,看看下面的代码。

示例代码:

import requests
# increass retries number
retries = #enter the number of retires you want to increase 
requests.adapters.DEFAULT_RETRIES = retries

这是您可以在 Python 中增加 URL 请求的重试次数的方法,但是如果由于服务器负载而出现此错误,您可以使用以下提示。

> python -m pip install requests

在 Python 中摆脱请求的 Set max_retries 的技巧

如果服务器上的负载导致此错误,您可以使用以下任何提示。

  • 禁用 keep_alive

您可以禁用会话的 keep_alive 功能。 下面的一段代码解释了如何做到这一点。

request_session = requests.session()
# disable keep_alive
request_session.keep_alive = False
request_session.get(your_url)
  • 使用超时

当服务器过载、繁忙或远离该位置时,这可能成为您遇到相同错误的原因。 为避免这种情况,您可以增加响应时间。

您可以使用来自服务器的 POST 和 GET 请求来完成此操作。 例如,看看下面的代码。

import requests
#the time in seconds in this example is increasing time by 5
req = requests.get(your_url, timeout=5)
req = requests.post(your_url, timeout=5)

您还可以在超时参数中使用元组。 第一个参数会增加构建时间,第二个参数会增加响应时间。 下面给出了代码示例。

req = requests.get(your_url, timeout=(3,6))
  • 设置 backoff_factor(延迟/睡眠)

backoff_factor 是请求用来初始设置网络连接的 urllib3 参数。

您还可以设置 backoff_factor 以增加每次尝试的尝试次数和休眠时间。

它将避免出现此错误。 有了这个,你就停止了这段代码并让它等待,直到它收到服务器的响应。

下图说明了 backoff_factor 如何在服务请求失败时延迟服务请求。

#you can set a backoff factor means delay/sleep time in each retry
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
#initailize the request session
request_session = requests.Session()
#initailizing retry object
#you can increase the number of total retires and sleep time of each retry
retries = Retry(total=3, backoff_factor=1)
adapter = HTTPAdapter(max_retries=retry)
request_session.mount('http://', adapter)
request_session.get(your_url)

根据 urllib3 文档,backoff_factor 是库用来确定重试之间的休眠间隔的基值。

例如,在每次不成功的连接尝试之后,urllib3 将休眠 {backoff_factor} * (2 (总重试次数 - 1)) 秒。

例如,如果 backoff_factor 设置为 0.01,sleep() 将在两次重试之间休眠 0.0s、0.2s、0.4s……。 默认情况下退避是不活动的(设置为 0)。

如果返回的状态码是500、502、503、504,会额外要求重试。 要更好地控制重试,您可以修改重试。

到此这篇关于如何在 Python 中设置请求的最大重试次数的文章就介绍到这了,更多相关 Python设置请求最大重试次数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python函数中return后的语句一定不会执行吗?

    python函数中return后的语句一定不会执行吗?

    这篇文章主要给大家详细分析讲解了关于python函数中return语句后的语句是否一定不会执行的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • 从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)

    从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)

    这篇文章主要介绍了从零开始的TensorFlow+VScode开发环境搭建的步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python使用Tkinter开发一个桌面待办事项应用

    Python使用Tkinter开发一个桌面待办事项应用

    文章介绍了Tkinter,Python标准库自带的GUI库,适合初学者入门,不需要额外安装环境,文章通过一个完整的待办事项应用项目,详细讲解了Tkinter的基本用法,包括创建窗口、放置控件、响应事件、保存数据等,文章还列举了一些常见的Tkinter应用场景,需要的朋友可以参考下
    2026-05-05
  • Pycharm 常用快捷键大全(全网最全)

    Pycharm 常用快捷键大全(全网最全)

    本文详细介绍了Pycharm中多种提高编程效率的快捷键操作,包括代码格式化、代码合并、修正代码警告等,适合Python开发者使用,感兴趣的可以了解一下
    2024-11-11
  • 使用python计算不定积分的示例

    使用python计算不定积分的示例

    SymPy是一个用于符号数学的Python库,支持许多类型的数学对象,包括整数、有理数、实数、复数、函数、极限、积分、微分、方程、几何等,这篇文章主要介绍了如何用python计算不定积分,需要的朋友可以参考下
    2024-07-07
  • 一款开源的Python一键抢票神器详细配置

    一款开源的Python一键抢票神器详细配置

    大家好,本篇文章主要讲的是一款开源的Python一键抢票神器,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Python魔术方法详解

    Python魔术方法详解

    这篇文章主要介绍了Python魔术方法详解,本文讲解了构造和初始化、用于比较的魔术方法、数值处理的魔术方法、普通算数操作符等内容,需要的朋友可以参考下
    2015-02-02
  • Python实现socket非阻塞通讯功能示例

    Python实现socket非阻塞通讯功能示例

    这篇文章主要介绍了Python实现socket非阻塞通讯功能,结合实例形式分析了Python使用socket模块进行非阻塞通讯的原理、多线程及客户端、服务器端相关实现技巧,需要的朋友可以参考下
    2019-11-11
  • Python脚本在后台持续运行的方法详解

    Python脚本在后台持续运行的方法详解

    这篇文章主要为大家详细介绍了Python脚本在后台持续运行的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • Django 5种类型Session使用方法解析

    Django 5种类型Session使用方法解析

    这篇文章主要介绍了Django 5种类型Session使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论