Python中的retry,,1、通过语言特性实现
Python中的retry,,1、通过语言特性实现
1、通过语言特性实现:
for i in range(0,100): while True: try: # do stuff except SomeSpecificException: continue break
2、通过第三方库实现:
pip install retry
参数介绍:
def retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger): """Return a retry decorator. :param exceptions: an exception or a tuple of exceptions to catch. default: Exception. :param tries: the maximum number of attempts. default: -1 (infinite). :param delay: initial delay between attempts. default: 0. :param max_delay: the maximum value of delay. default: None (no limit). :param backoff: multiplier applied to delay between attempts. default: 1 (no backoff). :param jitter: extra seconds added to delay between attempts. default: 0. fixed if a number, random if a range tuple (min, max) :param logger: logger.warning(fmt, error, delay) will be called on failed attempts. default: retry.logging_logger. if None, logging is disabled. """
案例:
from retry import retry@retry()def make_trouble(): ‘‘‘Retry until succeed‘‘‘@retry(ZeroDivisionError, tries=3, delay=2)def make_trouble(): ‘‘‘Retry on ZeroDivisionError, raise error after 3 attempts, sleep 2 seconds between attempts.‘‘‘@retry((ValueError, TypeError), delay=1, backoff=2)def make_trouble(): ‘‘‘Retry on ValueError or TypeError, sleep 1, 2, 4, 8, ... seconds between attempts.‘‘‘@retry((ValueError, TypeError), delay=1, backoff=2, max_delay=4)def make_trouble(): ‘‘‘Retry on ValueError or TypeError, sleep 1, 2, 4, 4, ... seconds between attempts.‘‘‘@retry(ValueError, delay=1, jitter=1)def make_trouble(): ‘‘‘Retry on ValueError, sleep 1, 2, 3, 4, ... seconds between attempts.‘‘‘# If you enable logging, you can get warnings like ‘ValueError, retrying in# 1 seconds‘if __name__ == ‘__main__‘: import logging logging.basicConfig() make_trouble()
参考:https://pypi.python.org/pypi/retry
https://stackoverflow.com/questions/2083987/how-to-retry-after-exception-in-python
Python中的retry
相关内容
- Python图像全屏显示,,需要在嵌入式设备上全
- pycharm如何配置编译器(从python2切换到python3),,之前将
- 资深程序员带你玩转深度学习中的正则化技术(附Pyt
- [Python数据挖掘]第4章、数据预处理,,数据预处理主要包
- Python中利用for表达式创建列表,,1、for表达式语法
- Python3基础 list in/not in 判断变量是否存在列表中,,?py
- Python判断输入字符类型,, 1 """从键盘上
- Python + SQLite + ST_Geometry,,SQLite是嵌入式
- python 中的 print 函数与 list函数,,print() 函数
- Python实现网页自动化-浏览器查找元素(二),,前言在
评论关闭