GH GambleHub

Planificator și sarcini de fundal

(Secțiunea: Operațiuni și Management)

1) Scop

Programatorul și sarcinile de fundal asigură funcționarea non-utilizator a platformei: calcule periodice, publicații de artefacte, reluări de compensare și coadă. Obiectivele sunt determinismul, toleranța la erori și auditabilitatea.


2) Taxonomia sarcinilor

Pe bază de timp: programat (cron/calendar): compensare, închiderea ferestrelor RTP, încărcări, arhivare.
Bazat pe evenimente: declanșează din autobuz (PaymentsSettled, PriceListUpdate).
One-off/Ad-hoc: jabs one-off cu TTL.
De lungă durată: Backoff/sagas, compacte de streaming.
Întreținere: rotații cheie, reambalare, indici, încălzire cache.


3) Arhitectură (referință)

Componente:

1. Scheduler (control-plan): programe de magazine, CAL/cron, ferestre de întreținere, fusul orar, limitatoare.

2. Dispecer: plan → coadă (per-prioritate/chiriaș/regiune), pune termene limită, chei idempotente.

3. Lucrători: static/autoscale pentru bazine de lucru; bătăi de inimă, contracte de leasing.

4. Coadă/autobuz: FIFO/prioritate, DLQ, mesaje amânate.

5. Locker/Coordonare: încuietori distribuite (leasing), leader-election (Raft/ZK/Consul).

6. Seif/KMS: secrete JIT, scurt TTL.

7. Observabilitate: urme/metrici/busteni, tablouri de bord, alerte.

8. Audit/WORM: chitanțe imuabile de execuție, felii Merkle.

Modele: outbox/CDC, idempotency, compensare (sagas), backpressure, circuit-breakers.


4) Orare: cron și calendare

Cron v3: al doilea/minut/oră/zi/lună/zi-săptămână; suport pentru „/5 „, intervale, liste.
Calendare/excepții: calendar de afaceri, ferestre de liniște, sărbători/DST.
Fusuri orare: păstrați „tz” la sarcină; Începerea locatarului la ora locală.
Multi-regiune: Copii ale programelor per regiune sau „regiunea de plumb + adepți” cu scurgere/reselecție.


5) Cozi, priorități, SLA-uri

Clasele prioritare: P0 (critic), P1, P2, P3; bazine individuale de lucrători.
SLA/termene limită: 'must _ start _ by', 'must _ finish _ by'; skip - escaladare/retraire.
Cote și corectitudine: capace pentru sarcini/min/chiriaș, jetoane pentru „explozii”, izolare zgomotoasă a vecinilor.
Timp de întârziere/vizibilitate.


6) Competitivitate și blocaje

Leasing: închiriere de lucrări cu prelungire automată (bătăi de inimă); prin timeout - revocare.
Mutex/semafoare: per-resource (de exemplu, „lista de prețuri x scrie doar un singur lucrător”).
Sharding: prin „chiriaș/regiune/hash (cheie)”; rutare lipicioasă pentru memoria cache și localitatea de date.
Lider-alegere: un lider publică locuri de muncă „sistem” (de exemplu, „închide toate ferestrele RTP”), adepți - standby fierbinte.


7) Fiabilitate: Retrai, idempotență, deadup

Cheie idempotentă: „(task_type, business_id, fereastră)”; repetă → aceeaşi chitanţă.
Retrai: back-off exponențial + jitter, limită de încercări, strategie de eroare (încercare/anulare/compensare).
Otravă-pilula: transfer rapid la DLQ după eșecuri N, alertă la proprietar.
Dedup: cache-ul văzut (în memorie + KV) pe ferestrele TTL.
Exact-o dată efecte: confirmarea efectelor secundare prin intermediul jurnalului de tranzacție/chitanțe.


8) Gestionarea sarcinilor lungi și grele

Chunking: defalcare în loturi, puncte de control/continuare.
Timp-box: CPU/IO/limitarea ieșirii în rețea; întrerupe cu progresul salvat.
Sagas/compensații: semantică „anulare” pentru pașii inter-service.
Concurrency-caps: limitele sarcinilor simultane pe tip/chiriaș/regiune.


9) Observabilitate și valori

Urme: 'trace _ id', pași saga, apeluri externe.

Valori (SLI):
  • Lag pentru a începe, coadă (lungime, vârstă p95).
  • Rata de succes, rata de eroare, rata de încercare.
  • Latenţă p50/p95, timp până la finalizare.
  • Cost pe sarcini 1k, ieșire/intrare.
  • Rata DLQ, rata pilulelor otrăvitoare.
SLO (exemplu):
  • P0 start ≤ 60 s, P1 ≤ 5 min; Succes ≥ 99. 5%; DLQ ≤ 0. 1%; Prospețime ≤ 30 s p95.

10) Audit și probabilitate

Chitanțe: 'chitanță _ hash' pentru start/succes/eroare, semnături DSSE pentru tipuri critice (plăți, liste de prețuri, RTP).
WORM: stocarea jurnalelor de execuție și a manifestelor de sarcină.
Lanțul de custodie: cine a livrat/aprobat/modificat programul; Verificările SoD.


11) Securitate și acces

RBAC/ABAC/ReBAC: cine creează/aprobă/rulează; SoD: „creați plata” ≠ „aprobați”.
Secretele JIT: lucrătorul solicită jetoane cu un TTL scurt pe domeniul de aplicare al problemei.
Izolare: bazine de lucrători per chiriaș/regiune/rețea; sandbox-execuție.
Igiena PII: mascare/tokenizare, interzicerea exploatării forestiere primare.


12) FinOps și costul

Bugete/alerte de capac privind calculul/stocarea/ieșirea.
Autoscale muncitori de cozi și SLO.
Clase de depozitare: fierbinte (7-30 zile) → OLAP (6-24 luni) → arhivă.
Planificare conștientă de costuri: fereastră de lansare la „ore ieftine”, limite de ieșire.


13) Modelul de date (simplificat)

'schedule' '{id, chiriaș, regiune, tz, croncalendar, fereastră, activat, proprietar, policy_version}'
'job' {id, schedule_id?, type, payload_hash, idempotency_key, prioritate, must_start_by, încercări, status, receipt_hash}'
'lease' {job _ id, worker_id, acquired_at, ttl} '
'run _ log' {job _ id, started_at, finished_at, result, trace_id, metrics {}, chitanțe []} '
'dlq _ item' '{job _ id, reason, încercări, last_error, owner_notified}'

14) contracte API (management/integrare)

'POST/scheme' - creați un program (cron/cal, tz, windows).
„POST/locuri de muncă” - a pus ad-hoc; return' job _ id', 'chitanţă _ hash'.
'GET/jobs/{ id}' - status/log/chitanţe.
'POST/jobs/{ id }/anulare' - anulare cu compensare.
'GET/cozi/statistici' - lungimi, lag-uri, p95.
Вебхуки: 'JobStarted', 'JobSucceed', 'JobFailed', 'JobDropedToDLQ', 'SLOViolated'.


15) Playbooks (scenarii tipice)

Retry-storm: activați back-off global, creșteți timpii de dependență, activați întrerupătorul de circuit, împărțiți loturile.
Avalanșă DLQ: opriți recepția, prioritizați DLQ parsarea, tamponați noi sarcini.
Liderul a căzut: rezelecția, verificarea „publicațiilor duble” prin idempotență, audit.
Furnizor de hung (PSP/KYC): rută către rezervă, reducerea frecvenței de votare/webhook-uri, transferarea tranzacțiilor în carantină.
Scurgeri de secrete ale lucrătorilor: revocarea cheie, rotația, căutarea lansărilor „anormale” în 30 de zile, revizuirea drepturilor.


16) Specificitatea iGaming/fintech

Plăți/plăți: locuri de muncă asincrone cu încasări, carantină a tranzacțiilor „gri”, reluări ale cozilor cu eliminare a duplicatelor.
Ferestre/limite RTP: închidere calendar, observat vs teoretic RTP, auto-pauză promo atunci când derivă.
Liste de prețuri/FX/Tax: publicații programate, versiuni artefact, invaliditate forță cache.
Afiliați: reconcilierea conversiilor, dedup webhook-uri, acte/semnături, dispute escrow.


17) Măsurători de calitate (set de eșantioane)

Programați aderența: ponderea sarcinilor începute în fereastră ≥ de 99%.
Coadă Lag p95: P0 ≤ 60 c, P1 ≤ 5 min.
Rata de succes/Retry/DLQ: ≥ 99. 5% / ≤ 0. 4% / ≤ 0. 1%.
Erori de idempotență: ≤ 0. 01%.
Cost/1k locuri de muncă și de ieșire/loc de muncă - în limita bugetului.
Audit complet: 100% sarcini critice cu încasări.


18) RACI

ZonaRACI
Arhitectura planificatoruluiPlatformă/SRECTODate, SecuritateProdus
Politici/SoD/CalendarConformitate/IAMCCO/CISOLegal, OperaţiuniToate
Observabilitate/SLOSREȘeful EngDate, FinOpsSuport
Economie/coteFinOpsCFO/CTOSRE, ProdusBU conduce
Registre de redare criticeEchipa IRCOOParteneri, JuridicAudit

19) Lista de verificare a implementării

  • Evidențiați clasele de sarcini, prioritățile și SLA-urile; Definiți calendarele și zonele orare.
  • Implementați Scheduler/Dispecer/Coadă/Lucrătorii cu alegerea liderului și Sharding.
  • Introduceți idempotența, retraiurile, DLQ, compensațiile (sagas).
  • Configurați secretele RBAC/ABAC/ReBAC, SoD și JIT pentru lucrători.
  • Activați urme/metrici/busteni, tablouri de bord și alerte; SLO и eroare-buget.
  • Facturile semnate (DSSE) și jurnalele WORM pentru tipurile critice.
  • Autoscale și cap-alerte (calcul/stocare/ieșire).
  • Playbook-uri: retry-storm, avalanșă DLQ, eșec lider, degradarea furnizorului.
  • Teste: GameDay per playbook, întârziere/injecții de eroare.
  • Recenzii regulate ale programelor, blocajelor de coadă și ROI-urilor de automatizare.

20) ÎNTREBĂRI FRECVENTE

De ce cron nu este suficient?
Fără cozi, idempotență, încuietori și audit, cron pauze în jos pe accidente și fusuri orare.

Poate fi combinat bazat pe timp și eveniment?
Da: cron - asigurare pentru catch-up; evenimente - pentru reactivitate.

Cum se realizează „exact o dată”?
Dedup cheie, efecte tranzacționale jurnal, chitanțe și efecte secundare idempotente.

Ce să faci cu slujbele „lungi”?
Chunk, puncte de control, timp-box, capacitatea de a întrerupe și de a continua.

Cum să nu „mănânci” bugetul?
Autoscale în cozi și SLO-uri, ceasuri ieftine pentru locuri de muncă grele, capace de ieșire/calcul.


Rezumat: Programatorul și sarcinile de fundal sunt conducta de producție a platformei. Prin încorporarea programelor și cozilor, idempotența, încuietorile și observabilitatea, adăugând chitanțe/audituri, izolarea chiriașilor și controlul FinOps, obțineți termene previzibile, recuperare rapidă și operațiuni coerente din punct de vedere legal în orice regiune și încărcare.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.