目标
同步任务成批收到 429 后又等待远超预期,原因是重试不断重置自身配额。本配方把每次 429 与余量、重置时间等响应头对齐,重建配额窗口,并让客户端在 429 时暂停整个窗口而不是继续探测,从而让任务按配额节奏稳定完成。
步骤要点
- 从日志提取 429 与 x-ratelimit、retry-after 响应头。
- 按接口分别跟踪配额,而不是全局统一。
- 在 429 时按 retry-after 暂停整个窗口,停止探测。
- 验证限速后任务不再返回 429 且总耗时符合配额计算。
grep -E 'HTTP/|x-ratelimit|retry-after' access.log | tail -20
排错提示
- 部分提供方把重试也计入配额,窗口内不要探测。
- 不同接口限流不同,需分别跟踪。
- 多客户端并发时缺少协调很难建模。
适用边界
- 依赖提供方给出准确的限流响应头。
- 只能节流,不能绕过限流。