KamoCRM

Pliez les registres principaux tous les 30 s et les recountiez tous les soirs; le déclencheur d'emploi a besoin du secret du cluster

FeatureDaemonService
Expédié
23 septembre 2026 à 01:28 UTC
Auteur
Kamo
Commite
84746ae

Les livres principaux (security service create-lead-ledgers.sql, applied 2026-09-22) remplacent le COUNT(-) par rapport à un Pool de 796 000 k-chefs et crédits- leads avec des totaux maintenus plus un journal appendice qui ramène qui est au nombre déclenche les déclencheurs écrivent. Ce service les maintient pliés et honnêtes : - LeadLedgerFoldJob (tous les 30 s) : une déclaration par lot supprime les lignes de journal et les ajoute au totals, donc un lecteur voit le chiffre avant ou après, jamais la moitié. Les lecteurs ajoutent déjà le journal à le total, donc une coche manquée coûte du temps de lecture, jamais de l'exactitude. Au maximum 40 lots de 5 000 par tique. - LeadLedgerReconcileJob (03:40 par nuit) : recompte le pool de chaque org et les crédits disponibles de chaque membre à partir des lignes et les compare avec le journal total en ONE statement (un instantané). Les différences sont les suivantes: Appelé en delta "RECONCILE", jamais écrit sur un total, de sorte que le recomptage ne peut pas courir les déclencheurs ou a pli. Il nomme également tout déclencheur de journal qui manque ou désactivé. Dans un système sain, il trouve Rien, donc chaque correction est enregistrée à WARN. Les deux sont «DisallowConcurrentExecution et rétrécissez une déclaration YugabyteDB avortée de 40001» (chacun est atomique, donc un réessayer ne peut pas doubler-compte). Le SQL a été rejoué contre YugabyteDB avant que celui-ci ne soit expédié (temp. tables: déclencheurs, lectures, pliage et recomptage, 60 contrôles). JobTriggerController: POST/api/daemon/trigger/job et GET/status répond à n'importe qui. Configuration de la sécurité permet à tous, et le daemon-route IngressRoute met ce service sur le point d'entrée public sécurisé sur le Web (Host daemon.internal.kamocrm.com; sondé 200 anonymement), donc n'importe quel emploi - maintenant l'inclusion du recomptage - pourrait être commencé à partir d'Internet, autant de copies qui se chevauchent que le pool Quartz détient. Les deux maintenant exiger X-Internal-Auth et mlos.internal-auth-secret (à temps constant) et refuser à tout le monde lorsque ce secret est inopée. Rien dans la plate-forme n'appelle ce point d'extrémité; un opérateur peut toujours, de l'intérieur du cluster. Tests: LeadLedgerMaintenanceTest (boucle et pliage, compte rendu de recompte, déclencheurs manquants, essai de ré-essayage la règle, et les formes SQL qui le rendent sûr à côté du trafic en direct), JobTriggerControllerAuthTest.

Tous les changements

Comme ce que tu vois expédier ?

Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.

Commencez gratuitement pour toujoursPrix de visualisation