Python 重试库 backon 0.3:零依赖异步原生,集成熔断器与可观测性

Python 重试库 backon 0.3:零依赖异步原生,集成熔断器与可观测性

_

backon 是 Python 重试/退避库,专为现代异步代码设计,零外部依赖、仅依赖 Python 标准库。

backon 提供了四种调用方式:装饰器(@on_exception、@on_predicate)、函数式(retry())、上下文管理器(Retrying)以及可调用对象(RetryingCaller/AsyncRetryingCaller)。装饰器方式最简洁,直接用 @backon.on_exception 装饰可能失败的函数,指定等待策略、异常类型和最大重试次数;函数式适合临时重试某个调用;上下文管理器则在需要精细控制重试过程时更灵活;RetryingCaller 通过链式调用 .on() 绑定异常类型后可复用。

等待策略支持指数退避(expo)、恒定间隔(constant)、斐波那契、衰减、增量等多种方式,还能用 + 号组合出复合策略。随机抖动(Jitter)可选择完整随机、纯随机或关闭,帮助避免多实例同时重试造成的「惊群效应」。停止条件和重试条件均可通过 & 和 | 操作符自由组合,构建出复杂的重试逻辑。

除了基础重试,backon 还内置了熔断器功能,支持 CLOSED/OPEN/HALF_OPEN 三种状态切换,防止故障级联传播。可选集成 Prometheus 和 OpenTelemetry 指标,无需引入额外依赖。测试场景下可用 backon.disable() 全局关闭重试,或用 limit_retries()、assert_retried() 等工具函数精准控制。

需要 Python 3.10 以上环境,安装命令为 pip install backon,API 设计对 asyncio 和 trio 均能开箱即用。

编注:信源为 GitHub 项目 README,侧重功能特性与 API 用法演示,未涉及版本号与具体发布时间。


百亿私募6月扎堆调研电子股,热度前十独占七席 2026-07-04
2G基站加速退网,老年机信号频繁中断如何应对? 2026-07-05