429 Upstream rate limit exceeded, please retry later · Retrying in 8s · attempt ...
错误信息
429 Upstream rate limit exceeded, please retry later · Retrying in 8s · attempt 6/10
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:429 Upstream rate limit exceeded, please retry later · Retrying in 8s · attempt 6/10
译文:429 上游请求速率超限,请稍后重试 · 8秒后重试 · 第6/10次尝试
2. 🎯 原因分析
3. 💡 解决方案
// 带指数退避的请求函数
async function requestWithBackoff(apiUrl, maxRetries = 10, initialDelay = 1000) {
let retryCount = 0;
while (retryCount < maxRetries) {
try {
const response = await fetch(apiUrl);
if (response.status === 429) {
const delay = initialDelay * Math.pow(2, retryCount); // 指数退避
console.log(`请求超限,${delay}ms后重试,当前第${retryCount + 1}次`);
await new Promise(resolve => setTimeout(resolve, delay));
retryCount++;
continue;
}
return response;
} catch (error) {
if (error.status === 429) {
retryCount++;
const delay = initialDelay * Math.pow(2, retryCount);
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
throw error;
}
}
throw new Error(`重试次数用尽,请求仍被限流`);
}