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中正则表达式的使用详解
Oct 17 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Python实现的爬虫功能代码
Jun 24 Python
Python3.7中安装openCV库的方法
Jul 11 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
python内置数据类型之列表操作
Nov 12 Python
numpy中的ndarray方法和属性详解
May 27 Python
python内存动态分配过程详解
Jul 15 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 Python
Python可视化神器pyecharts绘制地理图表
Jul 07 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 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
使用js实现数据格式化
2014/12/03 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
Python中过滤字符串列表的方法
2020/12/22 Python
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
数学系个人求职信范文
2014/01/30 职场文书
医德医风演讲稿
2014/05/20 职场文书
车间安全生产标语
2014/06/06 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
解除处分决定书
2015/06/25 职场文书
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python