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编程中基本的数学计算使用
Feb 04 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
Django中cookie的基本使用方法示例
Feb 03 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python for循环中的陷阱详解
Jul 13 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
Django 用户认证组件使用详解
Jul 23 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
Selenium python时间控件输入问题解决方案
Jul 22 Python
Python之字典对象的几种创建方法
Sep 30 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
E路文章系统PHP
2006/12/11 PHP
php json_encode奇怪问题说明
2011/09/27 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
javascript Excel操作知识点
2009/04/24 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
js控制input输入字符解析
2013/12/27 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
简述Python中的面向对象编程的概念
2015/04/27 Python
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
2014年采购工作总结
2014/11/20 职场文书
会计岗位职责范本
2015/04/02 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang