KamoCRM

Falten Sie die Lead-edededs alle 30 s und erzählen sie nachts; der Job-Trigger braucht das Cluster-Geheime

FeatureDaemonService
Verschifft
23. September 2026 um 01:28 UTC
Autor
Kamo
Ausschuss
84746ae

Die Lead-Leadder (Securedservice create_lead_ledgers.sql, angewendet 2026-09-22) ersetzen COUNT(*) über einen 796k-Lead Pool und über lead_credits mit gewarteten Summen plus ein Onend-only-Journal, dass Zeile Trigger schreiben. Dieser Service hält sie gefaltet und ehrlich: - LeadLedgerFoldJob (alle 30 s): eine Anweisung pro Stapel löscht Journalzeilen und fügt sie hinzu summa., so dass ein Leser die Zahl vor oder nachher sieht, nie zur Hälfte. Leser fügen die Zeitschrift bereits hinzu die Summe, so dass ein verpasstes Häkchen Zeit lesen, nie Korrektheit. Auf höchstens 40 Chargen von 5.000 pro Tick. - LeadLedgerReconcileJob (03:40 Nacht): erzählt jeden org Pool und die verfügbaren Kredite jedes Mitglieds aus den Zeilen und vergleicht sie mit total + journal in ONE Statement (ein Schnappschuss). Unterschiede sind APPENDED als 'RECONCILE' Deltas, nie über eine Gesamt geschrieben, so dass die Neuauszählung kann nicht Rennen die Auslöser oder eine Falte. Es benennt auch jeden Journal-Trigger, der fehlt oder deaktiviert ist. In einem gesunden System findet es nichts, so dass jede Korrektur bei WARN protokolliert wird. Beide sind @DisallowConcurrentExecution und versuchen Sie eine Aussage YugabyteDB abgebrochen mit 40001 (jeder ist atomar, so ein erneuter Versuch kann nicht doppelt zählen). Das SQL wurde vor dieser ausgelieferten Version gegen YugabyteDB wiedergegeben (tempel -Tabellen, liest, faltet und neu auszählt, 60 Schecks). JobTriggerController: POST /api/daemon/trigger/{job" und GET /status haben alle beantwortet. SecurityConfig Erlaubt alles, und die Daemon-Route IngressRoute setzt diesen Service auf dem öffentlichen Websecure Entrypoint (Host daemon.internal.kamocrm.com; untersucht 200 anonym), so dass jeder Job - jetzt einschließlich der Neuauszählung . könnte aus dem Internet gestartet werden, so viele überlappende Kopien wie der Quarz-Pool hält. Beide jetzt X-Internal-Auth = mlos.internal-auth-secret (konstante-Zeit) und verweigern alle, wenn dieses Geheimnis ist unset. Nichts in der Plattform ruft diesen Endpunkt an; ein Operator kann es immer noch, aus dem Inneren des Clusters heraus. Tests: LeadLedgerMaintenanceTest (Falling-Schleife und Kappe, Recount-Recounting, fehlende Trigger, der Retry die SQL-Formen, die es sicher neben dem Live-Verkehr machen), JobTriggerControllerAuthTest.

Alle Änderungen

Wie, was Sie sehen Versand?

Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.

Free Forever startenPreisgestaltung anzeigen