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

yipeiwu_com5年前Python基础

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设计】网站的支持!

相关文章

Linux 下 Python 实现按任意键退出的实现方法

某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间...

pip安装py_zipkin时提示的SSL问题对应

python的应用实践zipkin,需要py_zipkin,使用pip进行安装py_zipkin的时候出现问题, 根据stackoverflow的信息设定了pypi.org 和 file...

Python使用PIL库实现验证码图片的方法

Python使用PIL库实现验证码图片的方法

本文实例讲述了Python使用PIL库实现验证码图片的方法。分享给大家供大家参考,具体如下: 现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一。这里就不详细介绍了,...

详解Python 2.6 升级至 Python 2.7 的实践心得

前言 CentOS 6.8 安装 Python 2.7.13,因为软件版本上的需求所以考虑将 Python 升级至 2.7.13,加上生产环境还是以 RHEL 6 为主,互联网自动化运...

Python 实现中值滤波、均值滤波的方法

Python 实现中值滤波、均值滤波的方法

红包: Lena椒盐噪声图片: # -*- coding: utf-8 -*- """ Created on Sat Oct 14 22:16:47 2017 @author:...