Sahifa mazmuniga oʻtish
Hujjatlar
Make Agent Fast hujjatlari

So‘rov tezligi cheklovlari

Har bir kalit uchun tarif cheklovlari, javob sarlavhalari va xavfsiz qayta urinish tartibiga mos tizim yarating.

Qisqacha koʻrinish

Har bir kalit uchun tarif cheklovlari, javob sarlavhalari va xavfsiz qayta urinish tartibiga mos tizim yarating.

API soʻrovi yoʻliCheklangan kalit → versiyalangan resurs → imzolangan javob
Ilova / SDKBearer kalitimaf_live_…/api/v1/…ResursJSON
Har bir kalit uchunBir daqiqaRetry-After

Ochiq API har bir API kaliti yoki OAuth access tokeni uchun bir daqiqalik sirg‘aluvchi so‘rov oynasini qo‘llaydi. Cheklovni chetlab o‘tish uchun ko‘proq kalit yaratish qo‘llab-quvvatlanmaydi va hisob maʼlumotlari yoki hisobning cheklanishiga olib kelishi mumkin.

Tarif cheklovlari#

Faol tarifHar bir kalit uchun daqiqadagi so‘rovlar
Launch120
Operate600
Scale1 800

Hisobida faol pullik tarif bo‘lmagan hisob maʼlumoti tezlik kvotasi ajratilishidan oldin 403 subscription_required javobini oladi. Make Agent Fast juda qimmat amallar uchun pastroq endpointga xos cheklovlarni kiritishi mumkin; bunday holatda endpoint maʼlumotnomasida ular aniq ko‘rsatiladi.

Cheklovga tushgan javob#

So‘rov oynasi to‘lganda API quyidagilar bilan 429 rate_limit_exceeded qaytaradi:

HTTP/1.1 429 Too Many Requests
Retry-After: 17
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
X-Request-Id: 6c0b2f2e-...
Content-Type: application/json

Retry-After — kutish kerak bo‘lgan eng kam soniyalar soni. Muvaffaqiyatli javoblar hozircha qolgan kvota hisoblagichini bermaydi, shuning uchun ilova cheklovni takroriy 429 javoblari orqali topishga urinmay, parallel so‘rovlar sonini o‘zi boshqarishi kerak.

Qayta urinishni amalga oshirish#

Tasodifiy og‘ish bilan eksponensial kutishdan foydalaning, kattaroq Retry-After qiymatiga amal qiling va umumiy urinishlar sonini cheklang.

async function requestWithRetry(url: string, init: RequestInit, attempts = 4) {
  for (let attempt = 0; attempt < attempts; attempt += 1) {
    const response = await fetch(url, init);
    if (response.status !== 429 && response.status < 500) return response;

    if (attempt === attempts - 1) return response;
    const retryAfter = Number(response.headers.get("retry-after") ?? 0) * 1_000;
    const exponential = 500 * 2 ** attempt;
    const jitter = Math.random() * 250;
    await new Promise((resolve) =>
      setTimeout(resolve, Math.max(retryAfter, exponential + jitter)),
    );
  }
  throw new Error("unreachable");
}

POST, PATCH va DELETE so‘rovlarida har bir tarmoq yoki server qayta urinishida bir xil haqiqiy Idempotency-Keyni saqlang. Yangi idempotency kaliti tugallangan yon taʼsirni takrorlashi mumkin.

So‘rovlar sonini kamaytirish#

  • Haqiqiy vaqt yangiligi kerak bo‘lmagan hisob, sayt va sozlama maʼlumotlarini keshda saqlang.
  • Juda kichik sahifalarni ko‘p so‘rash o‘rniga har sahifada 100 tagacha yozuv oling.
  • Suhbatlar, lidlar, domen holati yoki eʼlonlarni so‘rab turish o‘rniga webhook hodisalarini qayta ishlang.
  • Har API kaliti uchun workerlar parallelligini cheklang; ko‘plab serverless ishga tushirishlar bir xil so‘rov oynasidan foydalanadi.
  • Alohida xizmatlar uchun kalitlarni izolyatsiya va audit maqsadida ajrating, bitta vazifaning quvvatini ko‘paytirish uchun emas.

Qayta urinish yoki urinmaslik jadvali#

JavobQayta urinilsinmi?Shart
429HaRetry-Afterni kuting, tasodifiy og‘ish qo‘shing va urinishlarni cheklang
500BaʼzanXavfsiz o‘qishlar yoki bir xil idempotency kaliti bilan himoyalangan o‘zgartirishlar
409 qayta ishlash ziddiyatiHaUning Retry-After: 2 sarlavhasiga ko‘ra kuting va bir xil idempotency kalitini saqlang
Boshqa 409Darhol emasJoriy resurs holatini o‘qing va ziddiyatni hal qiling
400, 401, 403, 404, 415Yo‘qAvval kiritma, hisob maʼlumoti, ruxsat, yo‘l yoki content typeʼni to‘g‘rilang

Doimiy yuk haqiqatan tarif oynasidan oshsa, cheksiz qayta urinish sikli qo‘shish o‘rniga so‘rab turishni kamaytiring, ishlarni guruhlang yoki namunaviy request IDʼlar va kutilayotgan trafik bilan yordam xizmatiga murojaat qiling.