python requests 重试_我可以为requests.request设置最大重试次数吗?

这不仅会改变最大重试次数,而且还会启用回退策略,使所有http://地址在重试前睡眠一段时间(总共5次):import requests

from urllib3.util.retry import Retry

from requests.adapters import HTTPAdapter

s = requests.Session()

retries = Retry(total=5,

backoff_factor=0.1,

status_forcelist=[ 500, 502, 503, 504 ])

s.mount('http://', HTTPAdapter(max_retries=retries))

s.get('http://httpstat.us/500')

根据documentation for ^{}:如果回退因子为0.1,则sleep()将在重试之间睡眠[0.1s、0.2s、0.4s,…]。如果返回的状态代码是500,502,503或504,则还将强制重试。

其他各种Retry选项允许更细粒度的控制:total–允许的重试总数。

connect–要重试的连接相关错误数。

read–读取错误时重试多少次。

重定向-要执行的重定向数。

method_whitelist–一组大写的HTTP方法动词,我们应该重试。

status_forcelist–一组我们应该强制重试的HTTP状态代码。

退避系数-在两次尝试之间应用的退避系数。

raise_on_redirect–如果重定向数已用尽,是引发一个MaxRetryError,还是返回一个响应代码在3xx范围内的响应。

raise_on_status–类似于raise_on_redirect的含义:如果状态落在status_forcelist范围内,并且重试次数已用尽,则是否应引发异常或返回响应。

NB:raise-on-u status是一个相对较新的版本,尚未发布urllib3或请求。raise-on-u status关键字参数似乎已使其在python 3.6版本中最多进入标准库。

要在特定的HTTP状态代码上重试请求,请使用status-forcelist。例如,状态强制列表=[503]将在状态代码503上重试(服务不可用)。

默认情况下,重试仅在以下情况下触发:无法从池中获取连接。

TimeoutError

HTTPException提升(在Python 3 elsehttplib中从http.client开始)。

这似乎是低级HTTP异常,如URL或protocol not

形状正确。

SocketError

ProtocolError

注意,这些都是阻止接收常规HTTP响应的异常。如果生成任何常规响应,则不执行重试。如果不使用状态强制列表,即使是状态为500的响应也不会重试。

为了使其以更直观的方式操作远程API或web服务器,我将使用上面的代码片段,它强制在状态500,502,503和504上重试,所有这些状态在web上并不少见,并且(可能)在足够长的退避期内可以恢复。

编辑的:直接从urllib3导入{}类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品专家Marty Cagan:不做仅仅会编码的人

Marty Cagan是享有世界声誉的产品管理专家,曾担任Netscape副总裁、eBay产品管理及设计高级副总裁。近日,记者在“PM-China首届产品经理高峰论坛”上对他做了专訪,请他分享自己的产品管理历程。 程序猿的工作 《程序猿》:据我所知。…

网页底部的版权信息_Shopify底部的版权信息(Powered by Shopify )如何删除

大多数新的Shopify商店所有者通常在一开始就遇到一个小问题。他们通常想摆脱商店页脚中的“Powered by Shopify”文本/链接。Shopify提供支持的含义是什么?Shopify是一个电子商务平台,可帮助创建和自定义电子商务商店。当您在此平台上创建商店时&#xf…

ftp 服务器 文件 连接 导出,ftp 服务器 文件 连接 导出

ftp 服务器 文件 连接 导出 内容精选换一换“数据导入”章节适用于MRS 3.x及后续版本。Loader是实现MRS与外部数据源如关系型数据库、SFTP服务器、FTP服务器之间交换数据和文件的ETL工具,支持将数据或文件从关系型数据库或文件系统导入到MRS系统中。Loader支持如下数…

自己的碎碎念

各位mmgg们,我是一个人见人爱,车载车爆胎的mm。 想知道我的年龄吗?我偷偷告诉你我正在学校和社会间徘徊(年龄大了都不好意思明说了,没错,我就是娇羞) 想知道我的职业吗?我想聪明的人…

python取绝对值数组_Python通用函数实现数组计算的方法

一.数组的运算数组的运算可以进行加减乘除,同时也可以将这些算数运算符进行任意的组合已达到效果。>>> xnp.arange(5)>>> xarray([0, 1, 2, 3, 4])>>> x5>>> xnp.arange(5)>>> x5array([5, 6, 7, 8, 9])>>> …

多个虚拟主机服务器,Windows多个虚拟主机服务器

Windows多个虚拟主机服务器 内容精选换一换迁移前,您需要设置目的端服务器。该目的端用来接收源端的数据,同时您也可以使用该目的端进行迁移测试和启动目的端。只有“迁移阶段”为“已就绪”时才可设置目的端。或单击“操作”列的“更多 > 设置目的端…

九度OJ #1437 To Fill or Not to Fil

题目描写叙述:With highways available, driving a car from Hangzhou to any other city is easy. But since the tank capacity of a car is limited, we have to find gas stations on the way from time to time. Different gas station may give different pri…

armv8 汇编 绝对地址赋值_详解汇编语言B和LDR指令与相对跳转和绝对跳转的关系...

[TOC]为什么要有相对跳转和绝对跳转?顺序执行:指令一条一条按照顺序往下执行,比如变量的定义和赋值都是按照顺序执行的。跳转执行:当指令执行到当前位置后跳转到其他位置执行。比如,在主函数中调用其他函数就是典型的跳…

BZOJ 4034: [HAOI2015]T2 树链剖分

4034: [HAOI2015]T2 Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加…

mysql把游标数据存入表中_mysql数据库怎么使用游标

存储过程完整代码.CREATE DEFINERrootlocalhost PROCEDURE cj_zongfen()BEGINDECLARE yw INT;#语文成绩DECLARE sx INT;#数学成绩DECLARE yy INT;#英语成绩DECLARE d INT;DECLARE nf BOOLEAN DEFAULT TRUE;DECLARE zongfen_cursor CURSOR FOR SELECT yuwen,shuxue,yingyu,cid …

yum安装ruby_centos 6.5 ruby环境安装

redis3.0以上支持集群,自带集群管理工具redis-trib.rb;在搭建集群前,安装ruby环境安装开发工具1、命令:yum groupinstall "Development tools"清理已安装过的2、命令:yum erase ruby ruby-libs ruby-mode ru…

mongodb3.0 性能測试报告 一

mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三測试环境: 服务器:X86 pcserver 共6台 cpu: 单颗8核 内存:64G 磁盘: raid 10 操作系统 :centos 6.5 mongo…

db2 某个字段排序_MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序...

MySQL常规排序、自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序。下面给出3中比较常用的排序方式,mark一下1.常规排序ASC DESCASC 正序DESC倒叙-- 此处不用多讲2.自定义排序自定义排序是根据自己想要的…

QML官方系列教程——QML Applications

附网址:http://qt-project.org/doc/qt-5/qmlapplications.html假设你对Qt的官方demo感兴趣,能够參考本博客的另一个系列Qt5官方demo解析集每一个绿色字体均是一篇博文连接。请收藏本文,本文会持续更新 。QML Applications —— QML应用程序QM…

51单片机基本刷屏测试实验_基于单片机的发动机振动速度、位移和加速度测量方法...

Single-chip microcomputer-based measuring of engine vibration  speed、displacement and accelerationAbstract: This paper presents a measuring method of engine vibration speed、displacement and acceleration。At first the signal from vibration senor of engin…

python正则表达式group用法_【Python】正则表达式用法

导读:正则在各语言中的使用是有差异的,本文以 Python 3 为基础。本文主要讲述的是正则的语法,对于 re 模块不做过多描述,只会对一些特殊地方做提示。很多人觉得正则很难,在我看来,这些人一定是没有用心。其…

HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。...

今天,在vs2013中新建了一个placard.json文件,当我用jq读取它的时候,去提示404,直接在浏览器访问这个文件,提示: HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本&…

python操作redis集群_python操作redis集群

strictRedis对象方法用于连接redis指定主机地址,port与服务器连接,默认db是0,redis默认数据库有16个,在配置文件中指定database 16上代码1、对redis的单实例进行连接操作根据不同的实例方法,与redis的命令对应python3&…

ArcGIS将CAD等高线转换为TIN/DEM数据

1.CAD图层分离 CAD快捷命令QSELECT(快速选择) 选择DGX,GCD图层,复制到新的CAD文件中 2.在ArcGIS中,将dwg文件转化为可编辑的要素类文件(shapefiles) 分析工具-提取分析-筛选 3.高程数据修正 鼠标右键生…

这周工作

这周在课上做了简单的小程序,做我感觉不是很好,好多东西不会,觉得上学年学的好多知识都没有搞懂,课下在看书期间,还是有好多看不懂。我在深思我我就是个打酱油的。转载于:https://www.cnblogs.com/wulaoliu/p/5277037.…