429 限流
报 429 限流怎么办
错误示例
status_code=429, 您已达到请求数限制:1分钟内最多请求XXX次
原因
Default 分组(Kiro 渠道)启用了动态 RPM(每分钟请求数)上限。当平台总并发过快、短时间内请求量过大时触发保护机制。
解决办法
- 降低并发频率:在代码中加入请求延迟或重试机制,控制单位时间内的请求数量
- 切换到 Ultra 分组:Ultra 分组专为高并发需求打造,没有 Default 分组的严格 RPM 限制
代码示例(指数退避重试)
import time
import random
def call_with_retry(func, max_retries=3):
for i in range(max_retries):
try:
return func()
except Exception as e:
if "429" in str(e) and i < max_retries - 1:
wait = (2 ** i) + random.uniform(0, 1)
time.sleep(wait)
else:
raise