Skip to content

CRONJOBS_ESCALATION entfernen

Beschreibung

Die Behandlung von CRONJOBS_ESCALATION ergibt bei uns überhaupt keinen Sinn und ist eher kontraproduktiv:

  • Läuft ein Job auf einen Fehler (der das PHP-Skript abbricht), bekommt der Besitzer der crontab sowieso eine Mail.
  • Die Standardeinstellung ist für einige Jobs viel zu kurz, Losverfahren laufen teilweise 20 Minuten, HISinOne-Synchronisation ca. 45 Minuten. Diese werden dann fälschlicherweise deaktiviert, wenn sie länger als erwartet laufen.
  • Stellt man die Einstellung auf einen "hinreichend großen" Wert, um das vorherige Problem zu lösen, wird
    • set_time_limit() damit aufgerufen, was man vermutlich nicht möchte.
    • im Fehlerfall erst mal gar kein Job mehr ausgeführt, bis die Zeit um ist.

Wenn es nur darum geht zu vermeiden, daß mehrere Jobs parallel ausgeführt werden, sollte man das besser über (korrektes) Locking machen. Das funktioniert dann auch richtig, wenn das PHP-Skript abbricht.

Vorschlag: Die Einstellung CRONJOBS_ESCALATION wird entfernt, es findet keine Behandlung von "Eskalierter Ausführung" mehr statt. Das Locking wird auf flock umgestellt, damit zuverlässig erkannt werden kann, ob ein vorheriger Job noch läuft oder nicht. Wie bisher werden nie mehrere Jobs parallel ausgeführt.

Edited by Elmar Ludwig