KamoCRM

Złóż księgi prowadzące co 30 s i opowiedz je ponownie w nocy; wyzwalacz pracy potrzebuje tajemnicy gromady

FeatureDaemonService
Shipped
23 września 2026 01:28 UTC
Author
Kamo
Commit
84746ae

Główne księgi (securityservice create_lead_ledgers.sql, stosowane 2026-09-22) zastępują COUNT(-) 796k-liad pool i over lead_credits z utrzymywaną sumą plus tylko dołączenie w tym wierszu Wyzwalacze piszą. Ta usługa utrzymuje je złożone i uczciwe: - LeadLedgerFoldJob (co 30 s): jedna instrukcja na partia usuwa wiersze i dodaje je do Całkowite sumy, więc czytelnik widzi figurę przed lub po, nigdy w połowie. Czytelnicy już dodają dziennik do Suma, więc nieostry kleszcz kosztuje czas czytania, nigdy poprawność. Co najwyżej 40 partii po 5 000 na kleszcz. - LeadLedgerReconcileJob (03:40 nocnie): relikwizy puli orgstanu i każdego członka dostępnych kredytów Z rzędów i porównuje je z całkowitym + dziennikiem w jednym oświadczeniu (jedna migawka). Różnice są Dodawane jako delty "RECONCILE", nigdy nie napisane w sumie, więc przeliczenie nie może ścigać się z wyzwalaczami lub Opad. Nazywa również każdego wyzwalacza dziennika, którego brakuje lub jest niepełnosprawny. W zdrowym systemie znajduje Nic, więc każda korekta jest rejestrowana na WARN. Oba są "DisallowConcurrentExecution" i ponownepróbowanie oświadczenia YugabyteDB abortuje z 40001 (każdy jest atomowy, Tak więc próba nie może podwójnie policzyć). SQL został powtórzony przeciwko YugabyteDB, zanim został wysłany (temp Tabele: wyzwalacze, odczytuje, składa i przeliczają, 60 kontroli). JobTriggerController: POST /api/daemon/trigger/Ajob' i GET /status odpowiedział na każdego. Bezpieczeństwo Konfig Zezwala na wszystko, a demonodroga Ingress Ingress umieszcza tę usługę na publicznym punkcie zwrotnym (Host daemon.internal.kamorm.com; badane 200 anonimowo), więc każda praca – teraz, w tym ponowne przeliczenie – Można zacząć od Internetu, tyle nakładających się kopii, ile mieści basen Quartz. Obydwie teraz Wymagaj X-Internal-Auth - mlos.internal-auth-sec (stały czas) i odmówić wszystkim, gdy ta tajemnica To jest niespokojne. Nic w platformie nie wywołuje tego punktu końcowego; operator nadal może, z wnętrza klastra. Testy: LeadLedgerMaintenanceTest (zawartość i czapka, raportowanie ponownego liczenia, brak wyzwalaczy, próba Reguła i kształty SQL, które czynią go bezpiecznym przy ruchu na żywo), JobTriggerControllerAuthTest.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing