SuperAPI AI 工具集

python-resilience

编程与开发

查看项目

更新于 10-15 23:42

技能介绍

用途:为 Python 应用添加容错能力,应对依赖服务不可靠、网络抖动、限流与临时故障。适用于外部服务调用重试、网络操作超时、容错微服务、限流与背压处理、基础设施装饰器、熔断器设计等场景。

核心概念:区分瞬时故障与永久故障,只重试瞬时错误(网络超时、临时服务问题),不重试永久错误(无效凭证、错误请求);使用指数退避避免压垮正在恢复的服务;加入抖动防止大量客户端同时重试造成惊群;限制重试次数与总时长,避免无限循环。

主要能力:基于 tenacity 的生产级重试,支持 stop_after_attempt、stop_after_delay、wait_exponential_jitter、retry_if_exception_type、retry_if_result;按异常类型白名单重试;按 HTTP 状态码(如 429、502、503、504)重试;异常与状态码组合重试;重试日志记录;异步超时装饰器(asyncio.wait_for);通过装饰器叠加实现追踪、超时、重试等横切关注点;依赖注入提升可测试性;失败安全默认值实现优雅降级。

使用方式:安装并使用 tenacity,通过 @retry 装饰器配置停止条件与等待策略;示例:@retry(stop=stop_after_attempt(3), wait=wait_exponential_jitter(initial=1, max=10))。可叠加 @traced、@with_timeout 等装饰器。

最佳实践:只重试瞬时错误;使用指数退避与抖动;限制总时长;记录每次重试;用装饰器分离重试逻辑与业务逻辑;注入依赖;所有网络调用设置超时;非关键路径优雅降级;监控重试率。

限制:资料未提供具体安装命令、版本要求、性能数据或收费信息。