SuperAPI AI 工具集

implement-retry-logic

编程与开发

查看项目

更新于 10-15 20:34

技能介绍

用途:为 Python 异步(async/await)操作添加重试逻辑,采用指数退避加抖动,并按项目模式处理配置注入与 ServiceResult 包装。适用于外部 API 调用、数据库连接、网络请求等可能瞬时失败的操作。触发语如“Add retry logic for X”“Make Z resilient to failures”“Handle transient errors in X”。

主要能力:先识别是否需要重试(幂等、可能瞬时失败),随后注入配置(如 max_retries、retry_delay,支持环境变量覆盖),实现重试循环,加入退避辅助方法,区分可重试与永久错误,并补充测试。退避计算为 delay = min(base_delay * (2 ** attempt), 30.0),并加 ±20% 抖动以避免惊群。错误分类规则:超时、429、5xx、网络错误可重试;校验错误、4xx(除 429)、语法错误不可重试;不确定时快速失败。提供两个示例:Neo4j 数据库操作重试和带限流处理的 Embedding API 调用重试。

必要用法:依赖 asyncio、time、aiohttp,使用 ServiceResult 返回值、Settings 配置注入和 OTEL 日志,避免硬编码参数;不要在非幂等操作或永久错误上重试,也避免无退避或无限重试。资料另含参考文档、模板和若干实用脚本,以及一个参考实现文件。