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装饰器(decorator)定义与用法详解
Feb 09 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
深入了解Python在HDA中的应用
Sep 05 Python
wxPython实现列表增删改查功能
Nov 19 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
Keras—embedding嵌入层的用法详解
Jun 10 Python
你需要学会的8个Python列表技巧
Jun 24 Python
python中字典增加和删除使用方法
Sep 30 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
python生成word合同的实例方法
Jan 12 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实现html标签闭合检测与修复方法
2015/07/09 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
javascript制作2048游戏
2015/03/30 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
Python基于有道实现英汉字典功能
2015/07/25 Python
Djang中静态文件配置方法
2015/07/30 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
数控技术应届生求职信
2013/11/13 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
答谢词范文
2015/01/05 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
团干部培训班心得体会
2016/01/06 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python