Python重试之美, 优雅的Tenacity

简介: Python重试之美, 优雅的Tenacity

前言


有朋友安利了一下Tenacity, 特别好用, 提供了简单易使用的通用装饰器API

官方文档: https://tenacity.readthedocs.io/en/latest/


测试代码

import random
from tenacity import retry, stop_after_attempt
# 限定重试5次
@retry(stop=stop_after_attempt(5))
def do_something_unreliable():
    num = random.randint(0, 10)
    print(num)
    if num > 1:
        raise IOError("Broken sauce, everything is hosed!!!111one")
    else:
        return "Awesome sauce!"
print(do_something_unreliable())

基本所有的api都是在装饰器里面实现, 还可以多种api任意组合使用, 支持自定义回调和asyncio

官方文档写的很详细了, 而且有对应的例子, 直接看官方文档然后用起来吧

目录
相关文章
|
1天前
|
开发工具 git Python
通过Python脚本git pull 自动重试拉取代码
通过Python脚本git pull 自动重试拉取代码
81 4
|
1月前
|
UED Python
Python装饰器怎么做重试机制
**使用Python装饰器实现的重试机制**简化了对可能出现临时故障的函数的处理,增强系统稳定性和用户体验。文中提供了一个简单的装饰器示例,允许在达到最大重试次数前,按设定间隔自动重试失败的函数调用。这种机制在分布式系统、网络通信中尤为重要,可应对网络波动、资源紧张等问题,避免服务中断。通过添加`@retry`装饰器,无需大量修改代码即可为函数添加重试功能。
|
11月前
|
Python
Python3,关于请求重试,这次requests库给安排的明明白白。
Python3,关于请求重试,这次requests库给安排的明明白白。
97 0
|
Python
Python4,它,会魔法吧,来自最强大的错误重试库。(二)
Python4,它,会魔法吧,来自最强大的错误重试库。(二)
106 1
Python4,它,会魔法吧,来自最强大的错误重试库。(二)
|
Python
Python3,它,会魔法吧,来自最强大的错误重试库。(一)
Python3,它,会魔法吧,来自最强大的错误重试库。(一)
36109 1
Python3,它,会魔法吧,来自最强大的错误重试库。(一)
|
数据采集 JSON 监控
推荐几个评价非常高的Python库Arrow、jsonpath、psutil、tenacity
推荐几个评价非常高的Python库Arrow、jsonpath、psutil、tenacity
203 0
|
Python
Python:retrying重试装饰器的使用
Python:retrying重试装饰器的使用
199 0
|
Python 数据格式 JSON
使用Python请求http/https时设置失败重试次数
使用Python的requests库时,默认是没有失败时重试请求的,通过下面的方式可以支持重试请求 设置请求时的重试规则 import requests from requests.
2030 0
|
数据采集 Python
python网络爬虫 - 设定重试次数内反复抓取
import urllib.request def download(url, num_retries=2): print('Downloading:', url) try: html = urllib.
1254 0