KamoCRM

Ori registrele de plumb la fiecare 30 de ani şi le renumăra pe timp de noapte; declanşatorul de locuri de muncă are nevoie de secret cluster

FeatureDaemonService
Expediere
23 septembrie 2026 la 01:28 UTC
Autor
Kamo
Comite
84746ae

Registrele de plumb (securityservice create lead leadrs.sql, aplicat 2026-09-22) înlocuiesc COUNT (*) peste o 796k-lider pool și peste lead credite cu totaluri menținute plus un jurnal numai anexă care rândul Declanşatorul scrie. Acest serviciu îi ţine împăturiţi şi cinstiţi: - LeadLedgerFoldJob (la fiecare 30 s): o declarație pe lot șterge rândurile jurnal și le adaugă totaluri, astfel încât un cititor vede figura înainte sau după, niciodată jumătate. Cititorii adaugă deja jurnalul la În total, o căpuşă ratată costă timpul de citire, niciodată corectitudine. Cel mult 40 de loturi de 5000 pe căpuşă. - LeadLedgerReconcileJob (03:40 nightly): renumără piscina fiecărui org și creditele disponibile ale fiecărui membru din rânduri și le compară cu total + jurnal într-o singură declarație (un instantaneu). Diferenţele sunt APENDAT ca 'RECONCILE' deltas, niciodată scris peste un total, astfel încât renumărarea nu poate cursa declanşatoare sau un pliu. De asemenea, se numește orice declanșator jurnal care lipsește sau dezactivat. Într-un sistem sănătos se găsește Nimic, deci fiecare corecţie e înregistrată la WARN. Ambele sunt @DisallowConcurrentExecution și retry a statement YugabyteDB abandons with 40001 (fiecare este atomic, astfel încât o rejudecare nu poate dubla numărul). SQL a fost redat împotriva YugabyteDB înainte de această expediere (temp tabele: declanșatoare, citiri, pliere și renumărare, 60 de verificări). JobTriggerController: Post /api/daemon/trigger/{job} și GET /status a răspuns la oricine. SecurityConfig permite tuturor, și daemon-rute IngressRoute pune acest serviciu pe punctul de intrare securizat web public (Host daemon.internal.kamocrm.com; Sondat 200 anonim), astfel încât orice loc de muncă acum, inclusiv renumărarea ar putea fi pornit de pe internet, la fel de multe copii suprapuse ca piscina Quartz deține. Ambele acum Necesită X-Normal-Auth = mlos.intern-auth-secret (constant-time) și refuză toată lumea atunci când acest secret este nesetat. Nimic din platforma nu numește acest obiectiv; un operator încă poate, din interiorul grupului. Teste: LeadLedgerMaintenanceTest (joar și capac, raportare renumărare, declanșare lipsă, retry regulă, și SQL forme care fac în condiții de siguranță lângă traficul live), JobTriggerControllerAuthTest.

Toate modificările

Ca ceea ce vezi de transport maritim?

Toate acestea ajung în spațiul de lucru pe cont propriu. Începeți cu planul gratuit și citiți această pagină din nou într-o lună.

Pornește gratuit pentru totdeaunaVezi prețurile