迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中设置请求的最大重试次数

作者:迹忆客 最近更新:2023/06/02 浏览次数:

本教程描述了为什么我们会收到错误消息,指出超出了最大重试次数,以及我们如何在 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 中使用requests模块发布表单数据

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中使用requests模块发布表单数据

发布时间:2023/06/02 浏览次数:180 分类:Python

本篇文章介绍了 Python requests 模块,并说明了我们如何使用该模块在 Python 中发布表单数据。使用 requests 模块在 Python 中发布表单数据

在 Python 中使用令牌进行 API 调用

发布时间:2023/06/02 浏览次数:148 分类:Python

在 Python 中进行不带令牌的 API 调用 要启动,我们需要先安装一个 Python 库来处理这个请求; 当我们在 Python 中调用 API 时,我们可以使用令牌来调用

在 Python 中使用请求设置用户代理 User-Agent

发布时间:2023/06/02 浏览次数:175 分类:Python

本文介绍 HTTP 标头用户代理主题以及如何使用 Python 中的请求设置用户代理。 您将了解 HTTP 标头及其在理解用户代理、获取用户代理以及学习使用 Python 中的请求设置用户代理的多种方法方面的

Python 忽略请求中的 SSL 安全证书检查

发布时间:2023/06/02 浏览次数:115 分类:Python

本文将提供多种使用请求禁用安全证书检查的方法。了解 SSL 安全检查背后的原因及其失败的原因 如果程序使用 Python 请求从 SSL 证书已过期的 URL 获取请求,它会引发两个异常。

Python 请求分页

发布时间:2023/06/02 浏览次数:179 分类:Python

在本文中,我们将了解分页以及如何克服 Python 中与分页相关的问题。 读完本文后,我们将能够了解 Python 分页以及如何使用它处理问题。什么是 Python 中的分页

Python 生成器推导

发布时间:2023/06/02 浏览次数:159 分类:Python

在本文中,我们将学习 python 的生成器和生成器推导以及示例。Python 中的生成器:Python 中的生成器是返回可迭代或遍历对象的函数,用于创建一次遍历项目的迭代器。

在 Python 中检查生成器是否为空

发布时间:2023/06/02 浏览次数:139 分类:Python

本文讨论如何在 Python 中检查生成器是否为空。在 Python 中检查生成器是否为空是指检查路径以确保它为空。

在 Python 中使用 PhantomJS

发布时间:2023/06/02 浏览次数:107 分类:Python

这篇 Python 文章将研究 PhantomJS 以及我们如何将它与用于 Python 编程的 Selenium Web 自动化模块一起使用。 我们还将研究为什么它比其他可用的自动化 Web 驱动程序更有用。

Python 查询 DynamoDB

发布时间:2023/06/02 浏览次数:127 分类:Python

本文将讨论如何使用 python 查询 Amazon DynamoDB。 我们还将讨论 Boto3 是什么以及它为什么需要查询 DynamoDB。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便