SuperAPI AI 工具集

python-resilience

编程与开发

查看项目

更新于 10-16 06:22

技能介绍

用途:为 Python 应用添加容错能力,应对临时失败、网络问题和服务中断,避免依赖不稳定时整体崩溃。触发场景包括给外部服务调用加重试、为网络操作设置超时、构建容错微服务、处理限流与背压、编写基础设施装饰器、设计熔断器。

主要能力:基于 tenacity 的生产级重试;区分瞬时与永久错误,只重试瞬时异常(如 ConnectionError、TimeoutError、httpx 连接/读取超时)与特定状态码(如 429、500、502、503、504);指数退避加抖动防止惊群;通过 stop_after_attempt 与 stop_after_delay 限制尝试次数和总时长;重试日志、异步超时装饰器、装饰器叠加、依赖注入、失败返回默认值等模式。

必要用法:使用前需安装 tenacity(资源仅给出导入示例,未提供安装命令)。典型写法为 @retry(stop=stop_after_attempt(3), wait=wait_exponential_jitter(initial=1, max=10)) 修饰函数;可组合 retry_if_exception_type 与 retry_if_result。不要重试 ValueError、TypeError、认证错误和大多数 4xx;为每个网络调用设置超时;记录每次重试;保持重试逻辑与业务逻辑分离。

适用场景:外部 API 调用、网络抓取、微服务间通信、限流与背压处理、可观测性装饰器、可测试服务设计。限制:资料未提供具体版本、性能数据、收费信息、安装命令和官方基准;熔断器仅在前述描述中提及,未给出实现示例。