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

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

目录
相关文章
|
3月前
|
开发工具 git Python
通过Python脚本git pull 自动重试拉取代码
通过Python脚本git pull 自动重试拉取代码
179 5
|
2月前
|
Rust API Python
Python Requests 库中的重试策略实践
在网络请求中,由于网络波动或服务暂时不可达等原因,请求可能失败。为增强客户端健壮性,自动重试机制变得尤为重要。本文介绍如何在 Python 的 `requests` 库中实现请求自动重试,通过 `urllib3` 的 `Retry` 类配置重试策略,并提供了一个具体示例,展示了如何设置重试次数、状态码集合及异常类型等参数,从而提高系统的可靠性和容错能力。
|
4月前
|
UED Python
Python装饰器怎么做重试机制
**使用Python装饰器实现的重试机制**简化了对可能出现临时故障的函数的处理,增强系统稳定性和用户体验。文中提供了一个简单的装饰器示例,允许在达到最大重试次数前,按设定间隔自动重试失败的函数调用。这种机制在分布式系统、网络通信中尤为重要,可应对网络波动、资源紧张等问题,避免服务中断。通过添加`@retry`装饰器,无需大量修改代码即可为函数添加重试功能。
|
Python
Python3,关于请求重试,这次requests库给安排的明明白白。
Python3,关于请求重试,这次requests库给安排的明明白白。
134 0
|
Python
Python4,它,会魔法吧,来自最强大的错误重试库。(二)
Python4,它,会魔法吧,来自最强大的错误重试库。(二)
124 1
Python4,它,会魔法吧,来自最强大的错误重试库。(二)
|
Python
Python3,它,会魔法吧,来自最强大的错误重试库。(一)
Python3,它,会魔法吧,来自最强大的错误重试库。(一)
36186 1
Python3,它,会魔法吧,来自最强大的错误重试库。(一)
|
数据采集 JSON 监控
推荐几个评价非常高的Python库Arrow、jsonpath、psutil、tenacity
推荐几个评价非常高的Python库Arrow、jsonpath、psutil、tenacity
234 0
|
Python
Python:retrying重试装饰器的使用
Python:retrying重试装饰器的使用
216 0
|
Python 数据格式 JSON
使用Python请求http/https时设置失败重试次数
使用Python的requests库时,默认是没有失败时重试请求的,通过下面的方式可以支持重试请求 设置请求时的重试规则 import requests from requests.
2138 0