处理限流和重试¶
本页说明客户端应如何处理已经收到的限流或临时服务错误。具体的并发、速率、额度和等待时间必须以当前密钥策略、响应头和控制台配置为准;本文不把客户端建议写成产品默认值。
收到 429 时¶
降低同一 Key 的并发请求数。
如果响应提供
Retry-After或等价等待信息,优先按该值等待。没有等待信息时,采用有限次、带随机抖动的退避策略。
将批量任务排队,避免多个工作进程同时重试。
在 Genesis 控制台检查该 Key 的限流和额度设置。
设计客户端重试¶
只有在你的业务可以安全重试时,才重试。至少区分:
情况 |
客户端处理 |
|---|---|
429 或明确的临时服务错误 |
有上限地退避重试 |
认证、权限、模型不可用或请求参数错误 |
不自动重试;修正配置或请求 |
网络中断 |
根据操作是否幂等决定是否重试 |
已开始的流式输出 |
先处理客户端状态;不要假设可从任意位置恢复 |
退避次数、最大等待时间、超时和并发上限由你的应用容量与产品当前限制共同决定。没有产品证据时,不要在文档、代码或配置中把某个数值标为 Genesis 默认值。
记录排障信息¶
重试耗尽后,记录:
时间范围和时区;
请求的接口和模型 ID;
HTTP 状态和脱敏错误正文;
脱敏凭证标识;
是否收到等待信息;
已执行的重试次数。
最后更新于