KamoCRM

Kein Job überlappt sich, und kein HTTP-Anruf kann einen Arbeiter für immer hängen

FixDaemonService
Verschifft
23. September 2026 um 01:54 UTC
Autor
Kamo
Ausschuss
d260fad

Quarz hier läuft 10 In-Speicher-Arbeiterfäden auf einer Replik. 17 der 24 Arbeitsplätze hatten keine @DisallowConcurrentExecution, so dass ein Lauf, dass seine Intervall überrannt begann eine zweite Kopie daneben - für die pro Minute Jobs (Erinnerungen, Aufnahmen, VOIP-Synchronisation, Retail-Sync, MeridianLink-Umfrage, Landschaft füllen, Webinar-Erinnerungen...), das ist doppelte Verarbeitung. Sechs HTTP-Clients waren "new RestTemplate() " ohne Verbindung oder Timeout lesen (die Google und Microsoft Token-Refresher, der SecurityService LOS-Apply und Pipeline Clients, der VOIP Global Sync und der Aufnahme-Disponent), so dass man nach Downstream seinen Arbeiter hielt für immer - und mit Überschneidung erlaubt, nahm ein anderer Arbeiter jede Minute, bis jeder Job im Daemon hatte Stille gestoppt, bis ein Pod neu starten. - @DisallowConcurrentExecution auf jedem Job. - Timeouts auf jeden Kunden: 10 s überall verbinden; lesen Sie 30 s für Token-Endpunkte, 60 s für die SecurityService interne Anrufe, 10 min für die VOIP-Synchronisation und FFmpeg Versand (die gleiche gebunden die andere Sweep Trigger bereits verwenden). - DaemonJobSafetyTest pins beide Regeln für zukünftige Jobs (mutation-geprüft: Entfernen einer Anmerkung, oder Wiederherstellung einer nackten Restvorlage, schaltet es rot). Volle Suite: 69 Tests grün.

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