python自动重试第三方包retrying模块的方法


Posted in Python onApril 24, 2018

retrying是一个python的重试包,可以用来自动重试一些可能运行失败的程序段,retrying提供一个装饰器函数retry,被装饰的函数就会在运行失败的情况下重新执行,默认只要一直报错就会不断重试。

最近写了一个爬虫,需要连接国外的一个网站,经常出现掉线的情况,自己写了一个自动重连的代码,但感觉不够简洁。。。

后来就上万能的github,找到了一个第三包,基本能满足我的要求。这个第三方包就是retrying.

我的需求就是每当出现request相关异常的时候,就自动重来,上限连接10次;使用代码如下:

from retrying import retry 
def is_request_exception(e):
   return issubclass(type(e),RequestException)
 @retry(retry_on_exception=is_request_exception,wrap_exception=False, stop_max_attempt_number=10)
 def request_get(url, timeout=120):
   return requests.get(url, timeout=120)

刚开始用的时候,也遇到一些坑,就是在request_get用了try..except,导致不成功。后来删除就可以了。。。

我理解,在retring包中,已经有exception处理了,如果你的代码中有了exception处理,retring就没有捕获异常,就没法达到期望的结果了。

retrying还有非常多的自定义参数,如果等待时长控制,总共等待时间控制等等,暂时还没有这么特别的要求,等需要的时候,我再去研究一下。

总结

以上所述是小编给大家介绍的python自动重试第三方包retrying模块的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python 网页解析HTMLParse的实例详解
Aug 10 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
对python字典过滤条件的实例详解
Jan 22 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
django中media媒体路径设置的步骤
Nov 15 Python
基于python实现学生信息管理系统
Nov 22 Python
python中sklearn的pipeline模块实例详解
May 21 Python
Python pathlib模块使用方法及实例解析
Oct 05 Python
python3中编码获取网页的实例方法
Nov 16 Python
python3+PyQt5泛型委托详解
Apr 24 #Python
python去除扩展名的实例讲解
Apr 23 #Python
python3 遍历删除特定后缀名文件的方法
Apr 23 #Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 #Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 #Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 #Python
Tensorflow之Saver的用法详解
Apr 23 #Python
You might like
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
js运动事件函数详解
2016/10/21 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
python 字符串只保留汉字的方法
2018/11/16 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
几道PHP的面试题
2012/05/19 面试题
高二物理教学反思
2014/02/08 职场文书
英文自荐信常用句子
2014/03/26 职场文书
租房合同协议书
2014/04/09 职场文书
大型营销活动计划书
2014/04/28 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers