首页 / 重试机制

📖 重试机制 是什么?

像电话占线:等几秒再拨,别一直狂按重拨。

部署与生产

⚡ 一句话秒懂

像电话占线:等几秒再拨,别一直狂按重拨。

📖 举个故事

大促当晚,小美的 Agent 批量发通知,短信接口网络抖了一下,一百条里失败十几条。第一次她写“失败立刻重试”,结果服务器正忙,越重试越堵,雪上加霜。改成“失败后等 1 秒、2 秒、4 秒再试,最多 3 次”,像排队打饭遇到插队的:不硬挤,先让一步再上前,队伍反而顺畅了。第二天一查,重试救回了大部分失败的通知。

💡 类比理解

暂未补充。

🧩 真实例子

暂未补充。

🛠️ 怎么实际使用

调 OpenAI 等大模型 API 常遇到 429(限流)和 5xx(服务器忙),这些是瞬时错误,值得重试。用 tenacity 库:@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, max=10)),自动指数退避。关键前提:只重试幂等操作。比如 Agent 创建订单前先查订单号是否存在,避免重复下单;必要时给请求带幂等键。

📚 进阶原理

重试只对瞬时错误有意义:网络超时、429、5xx;4xx 业务错误(参数错、没权限)重试多少次都一样。指数退避(1s、2s、4s…)加随机抖动(jitter),避免大量客户端同时重试造成惊群。必须设最大次数和总超时上限,防止无限重试拖垮系统。配合幂等键(idempotency key),保证重复请求不产生重复副作用。Python 可用 tenacity 或 backoff 库。

继续学习相关术语