Rejalashtirish va fon vazifalari
(Bo’lim: Operatsiyalar va Boshqaruv)
1) Vazifasi
Rejalashtiruvchi va fon vazifalari platformaning foydalanishdan tashqari ishlashini ta’minlaydi: davriy hisob-kitoblar, artefaktlarni nashr etish, kliring va navbat repleylari. Maqsadlar - determinizatsiya, uzilishlarga chidamlilik va auditga yaroqlilik.
2) Vazifalar taksonomiyasi
Time-based: jadval boʻyicha (cron/kalendar): kliring, RTP oynalarini yopish, tushirish, arxivlash.
Event-driven: shina triggerlari (PaymentsSettled, PriceListUpdated).
One-off/Ad-hoc: TTL bilan bir martalik joblar.
Long-running: backof/sages, striming kompakshenlari.
Maintenance: kalitlar rotatsiyasi, repekij, indekslar, kesh isitish.
3) Arxitektura (referens)
Komponentlar:1. Scheduler (control-plane): jadvallar, CAL/cron, xizmat koʻrsatish oynalari, taymzonlar, cheklovlarni saqlaydi.
2. Dispatcher: reja → navbat (per-priority/tenant/region), muddatlar, idempotent kalitlarni qo’yadi.
3. Workers: vazifalar puli ostidagi statik/avtoskeyl; heartbeats, leases.
4. Queue/Bus: FIFO/ustuvorlik, DLQ, kechiktirilgan xabarlar.
5. Locker/Coordination: taqsimlangan blokirovkalar (leases), etakchi elektratsiya (Raft/ZK/Consul).
6. Vault/KMS: JIT sirlari, qisqa TTL.
7. Observability: traces/metrics/logs, dashbordlar, alertlar.
8. Audit/WORM: oʻzgarmas bajarish kvitansiyalari, Merkle kesmalari.
Patternlar: outbox/CDC, idempotency, kompensatsiyalar (saglar), backpressure, circuit-breakers.
4) Jadvallar: cron va taqvimlar
Cron v3: sekund/daqiqa/soat/kun/oy/kun-hafta; «/5 », diapazonlar, ro’yxatlarni qo’llab-quvvatlash.
Taqvim/istisnolar: biznes taqvimi, «sukunat oynalari», bayramlar/DST.
Taymzonlar:’tz’ni vazifada saqlang; tenantni mahalliy vaqt bo’yicha ishga tushirish.
Multiregion: per-region jadvallari yoki drayn/qayta saylangan «yetakchi mintaqa + izdoshlar» nusxalari.
5) Navbatlar, ustuvorliklar, SLA
Ustuvorlik klasslari: P0 (tanqidiy), P1, P2, P3; alohida vorker pullari.
SLA/muddatlar:’must _ start _ by’,’must _ finish _ by’; ruxsatnoma - eskalatsiya/retraj.
Kvotalar va fairness: vazifalar/min/tenant uchun caps, «burstlar» uchun tokenlar, noisy-neighbors izolyatsiyasi.
Kechiktirilgan vazifalar: «oldin emas» (delay/visibility timeout).
6) Raqobatbardoshlik va blokirovka
Leases: avto-uzaytirish bilan ishlashni ijaraga olish (heartbeat); taym-autda - qayta olib qo’yish.
Mutex/semaforlar: per-resurs (masalan, «prays-listni faqat bitta vorker yozadi»).
Chardlash:’tenant/region/hash (key)’; kesh uchun sticky-routing.
Eleksiya yetakchisi: bitta rahbar «tizimli» joblarni (masalan, «barcha RTP derazalarini yopish»), izdoshlar - issiq standby chop etadi.
7) Ishonchlilik: retryalar, idempotentlik, dedup
Idempotent kaliti:’(task_type, business_id, window)’; takrorlash → xuddi shu kvitansiya.
Retrailar: eksponensial back-off + jitter, urinishlar limiti, on-error strategiyasi (retry/cancel/compensate).
Poison-pill: N muvaffaqiyatsizliklardan so’ng DLQga tezkor o’tkazish, egasiga alert.
Dedup: seen-cache (in-memory + KV) TTL oynasida.
Exactly-once effektlari: tranzaksion jurnal/kvitansiyalar orqali nojo’ya ta’sirlarni tasdiqlash.
8) Uzoq muddatli va og’ir vazifalarni boshqarish
Chunking: batchi, check pointlarga bo’lish/davomi.
Time-boxing: CPU/IO/tarmoq egresi; taraqqiyotni saqlab qolgan holda uzilish.
Saga/kompensatsiya: xizmatlararo qadamlar uchun «undo» semantikasi.
Concurrency-caps: turi/tenant/mintaqa uchun bir vaqtning oʻzida bajariladigan vazifalar chegarasi.
9) Kuzatish va metrika
Traces:’trace _ id’, saga qadamlari, tashqi qoʻngʻiroqlar.
Metrics (SLI):- Boshlashdan oldin Lag, navbat (uzunligi, yoshi p95).
- Success Rate, error-rate, retry-rate.
- Latency p50/p95, time-to-complete.
- Cost per 1k vazifalar, egress/ingress.
- DLQ rate, poison-pill rate.
- P0 start ≤ 60 s, P1 ≤ 5 min; Success ≥ 99. 5%; DLQ ≤ 0. 1%; Freshness (opershina) ≤ 30 s p95.
10) Audit va isbotlanganlik
Kvitansiyalar: start/muvaffaqiyat/xato uchun’receipt _ hash’, tanqidiy turlar uchun DSSE-imzolar (to’lovlar, prays-varaqlar, RTP).
WORM: bajarish daftarlari va vazifalar manifestlarini saqlash.
Chain-of-custody: jadvalni kim qo’ydi/ma’qulladi/o’zgartirdi; SoD tekshiruvlari.
11) Xavfsizlik va kirish
RBAC/ABAC/ReBAC: kim yaratadi/ma’qullaydi/ishga tushiradi; SoD: «to’lovni yaratish» ≠ «tasdiqlash».
JIT sirlari: vorker qisqa TTL tokenlarini topshiriqni sotib olish uchun so’raydi.
Izolyatsiya: per-tenant/region/to’rlar pullari; sandbox ijrosi.
PII-gigiyena: niqoblash/tokenlash, boshlang’ich loglarni taqiqlash.
12) FinOps va qiymati
Budjetlar/compute/storage/egress uchun kap-alertlar.
Vorkerlar avtoskalasi navbat bo’yicha va SLO.
Saqlash sinflari: issiq (7-30 kun) → OLAP (6-24 oy) → arxiv.
Cost-aware rejalashtirish: «arzon soatlarda» ishga tushirish oynasi, egress limitlari.
13) Ma’lumotlar modeli (soddalashtirilgan holda)
14) API kontraktlari (boshqaruv/integratsiya)
’POST/schedules’ - jadval (cron/cal, tz, derazalar) yaratish.
’POST/jobs’ - ad-hoc qo’yish; qaytarish’job _ id’,’receipt _ hash’.
’GET/jobs/{ id}’ - maqom/log/kvitansiyalar.
’POST/jobs/{ id }/cancel’ - kompensatsiya bilan bekor qilish.
’GET/queues/stats’ - uzunliklar, laglar, p95.
Вебхуки: `JobStarted`, `JobSucceeded`, `JobFailed`, `JobDroppedToDLQ`, `SLOViolated`.
15) Pleybuklar (namunaviy ssenariylar)
Retry-storm: Global bek-offni yoqish, qaramlik taymautlarini ko’tarish, circuit-breaker, batchlarni maydalash.
DLQ ko’chkisi: qabul qilishni to’xtatish, DLQni tahlil qilish, yangi vazifalarni bufer qilish.
Peshqadam yiqildi: qayta saylash, «ikki marta nashr etish» ni idempotentlik bo’yicha tekshirish, audit.
Provayder (PSP/KYC): zaxiraga yo’nalish, polling/vebxuk chastotasini pasaytirish, tranzaksiyalarni karantinga o’tkazish.
Vorker sirlarining tarqalishi: kalitlarni chaqirib olish, rotatsiya, 30 kun ichida «g’ayritabiiy» ishga tushirishlarni qidirish, huquqlarning g’azablanishi.
16) iGaming/fintech xususiyatlari
To’lovlar/to’lovlar: kvitansiyalar bilan asinxron joblar, «kulrang» tranzaksiyalar karantini, bobosi bilan navbatlar takrorlanishi.
RTP oynalar/limitlar: taqvim bo’yicha yopish, kuzatiladigan vs nazariy RTP, drift paytida avto-pauza promo.
Prays-listы/FX/Tax: jadval bo’yicha nashrlar, artefaktlarning versiyalari, keshning fors-nogironligi.
Affiliates: konversiyalarni solishtirish, vebxuklarning dedupi, dalolatnomalar/imzolar, nizolar bo’yicha eskrou.
17) Sifat metrikasi (to’plam namunasi)
Schedule Adherence: oynada boshlangan vazifalar ulushi ≥ 99%.
Queue Lag p95: P0 ≤ 60 s, P1 ≤ 5 min.
Success/Retry/DLQ Rate: ≥ 99. 5% / ≤ 0. 4% / ≤ 0. 1%.
Idempotency Errors: ≤ 0. 01%.
Cost/1k jobs va Egress/job - budjet doirasida.
Audit Completeness: kvitansiyalar bilan 100% tanqidiy vazifalar.
18) RACI
19) Joriy etish chek-varaqasi
- Vazifalar, ustuvorliklar va SLA sinflarini tanlash; taqvim va taymzonlarni belgilash.
- «Scheduler/Dispatcher/Queue/Workers» ni yetakchi elektr energiyasi va chardlash bilan joylashtirish.
- Idempotentlik, retraj, DLQ, kompensatsiya (sage) kiriting.
- Ishchilar uchun RBAC/ABAC/ReBAC, SoD va JIT sirlarini moslash.
- Traces/metrics/logs, dashbordlar va alertlarni kiritish; SLO и error-budget.
- Muhim turlar uchun imzolangan kvitansiyalar (DSSE) va WORM jurnallari.
- Avtoskeyl va kap-alertlar qiymati bo’yicha (compute/storage/egress).
- Pleybuklar: retry-storm, DLQ-ko’chki, rahbarning ishdan chiqishi, provayderning degradatsiyasi.
- Testlar: Har bir pleybuk uchun GameDay, kechikish/xato in’ektsiyalari.
- Jadvallar, navbatlar va avtomatlashtirishning ROI to’siqlarini muntazam ravishda yig’ish.
20) FAQ
Nega cron yetarli emas?
Navbat, idempotentlik, blokirovka va auditsiz cron uzilishlar va vaqt zonalarida buziladi.
Time-based va event-drivenni birlashtirish mumkinmi?
Ha: cron - catch-up uchun sug’urta; voqealar - reaktivlik uchun.
«Bir kun» ga qanday erishish mumkin?
Kalit bo’yicha dedup, tranzaksion effektlar jurnali, kvitansiyalar va idempotent nojo’ya ta’sirlar.
«Uzoq» joblar bilan nima qilish kerak?
Chank, chekpindlar, time-boxing, to’xtatish va davom ettirish imkoniyati.
Qanday qilib byudjetni yemang?
Navbat bo’yicha avtoskeyl va SLO, og’ir joblar uchun arzon soatlar, egress/compute qattiq qopqoqlari.
Xulosa: Rejalashtirish va fon vazifalari - bu platformaning ishlab chiqarish konveyeri. Jadvallar va navbatlar, idempotentlik, blokirovka va kuzatish, kvitansiyalar/audit, tenantlarni izolyatsiya qilish va FinOps-nazoratni qo’shish orqali siz har qanday mintaqa va yuklarda oldindan aytib bo’ladigan bajarish muddatlarini, tezkor recovery va yuridik jihatdan bardosh berilgan operatsiyalarni olasiz.