So'rov va idempotentlik
So’rov — haqiqat manbai
“So’rov — haqiqat manbai” bo'limiGET /serving-tasks/?status=offered — ishni shu tarzda topasiz. Vebhuklar,
agar ro’yxatdan o’tkazilgan bo’lsa, kechikishni kamaytirish vositasi —
haqiqat emas. Parkingiz smenada ekan, uzluksiz so’rang.
ETag
“ETag” bo'limiHar bir ro’yxat javobi ETag olib yuradi. Uni If-None-Match sifatida qaytarib
yuboring; o’zgarmagan ro’yxat tanasiz 304 Not Modified qaytaradi. Bu zich
so’rov sikllarini ikkala tomon uchun deyarli bepul qiladi — albatta amalga
oshiring.
Chastota cheklovlari
“Chastota cheklovlari” bo'limiCheklovlar qat’iy va har bir hisob ma’lumoti bo’yicha hisoblanadi:
| Yuza | Chegara |
|---|---|
| Vazifalarni so’rash | daqiqasiga 60 (~1/s) |
| Vazifani qabul qilish/xabar berish | daqiqasiga 120 |
| Heartbeat | daqiqasiga 30 |
Ko’proq kerak bo’lgan kontroller band emas, noto’g’ri ishlayapti. 429 javoblari
Retry-After olib yuradi — unga rioya qiling.
Idempotentlik
“Idempotentlik” bo'limiHar bir o’zgartirish Idempotency-Key sarlavhasini (yoki tanadagi
client_idempotency_key maydonini) qabul qiladi. Bir xil kalitli takroriy so’rov
dastlabki natijani qaytaradi va yangi hech nima yozmaydi.
Doim yuboring. Tarmoq so’rov o’rtasida uziladi; kalit bilan siz bemalol qayta urinishingiz va da’vo yoki xabarni hech qachon ikki marta qo’llamasligingiz mumkin.
Har bir amalga bitta kalit ishlating, har bir vazifaga bitta emas: bir xil
mantiqiy amalning qayta urinishlari uchun o’sha kalitni, har bir yangi amal uchun
esa yangi kalitni. O’sha vazifaning boshqa o’tishiga allaqachon sarflangan kalit
idempotency_key_reused bilan 409 qaytariladi. Kalitlar 128 belgi bilan
cheklangan.
So’rov tanalari ham chegaralangan — ixtiyoriy telemetry va heartbeat summary
obyektlari eng ko’pi 4 KB, 5 darajadan chuqur bo’lmagan va bitta obyekt yoki
massivda 50 tadan ko’p bo’lmagan yozuvli JSON obyektlari bo’lishi kerak.
Xato konverti
“Xato konverti” bo'limiHar bir rad etilgan so’rov bitta shaklni qaytaradi:
{ "detail": "Odam o'qiy oladigan izoh.", "code": "machine_readable_code" }| HTTP holati | Kodlar |
|---|---|
400 |
unknown_status, status_not_reportable, unknown_failure_code |
404 |
task_not_found |
403 |
park vakolati yo’qolgan — sertifikat, faollashuv yoki tarif huquqi |
409 |
already_claimed, robotics_paused, platform_frozen, arrival_dwell_pending, idempotency_key_reused, task_<current_status> tartib ziddiyatlari |
410 |
offer_expired |
code bo’yicha shoxlang, detail matni bo’yicha emas — detail so’zlashuvi
o’zgarishi mumkin; kodlar shartnomaviy.