حدود الطلبات والحصص
راقب ترويسات الحصة، وخفّض الحمل قبل الوصول إلى 429، وأعد المحاولة بطريقة متدرجة.
ماذا تراقب
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
| X-Quota-Limit | header | — | إجمالي الحصة المتاحة ضمن دورة الفوترة |
| X-Quota-Remaining | header | — | الطلبات المتبقية في الحصة |
| Retry-After | header | عند 429 | مدة الانتظار قبل محاولة جديدة |
الحصة الافتراضية هي 10,000 طلب/ساعة (نافذة متدحرجة لمدة ساعة واحدة). تجاوز الحد يعيد 429 مع ترويسة Retry-After. قد تختلف الحدود حسب المسار والخطة.
Exponential backoff with jitter
async function requestWithBackoff(url, options, attempt = 0) { const response = await fetch(url, options); if (response.status !== 429 && response.status < 500) return response; if (attempt >= 4) throw new Error("Retry limit reached"); const retryAfter = Number(response.headers.get("Retry-After")); const delay = retryAfter ? retryAfter * 1000 : Math.min(1000 * 2 ** attempt + Math.random() * 250, 30000); await new Promise((resolve) => setTimeout(resolve, delay)); return requestWithBackoff(url, options, attempt + 1); }