Cron schweigt. Ist der nächtliche Job überhaupt gelaufen?

Die Website kann funktionieren, während Backups und Importe stehen. Heartbeats überwachen den Abschluss von Hintergrundaufgaben.

Ein analoger Wecker im Sonnenlicht auf einer dunklen Oberfläche
Fotografie: Suhas Hanjar / Unsplash

Der nächtliche Import startet nicht und morgens sehen Kunden die Daten von gestern. Die Website ist erreichbar, der Server antwortet und ein gewöhnlicher HTTP-Monitor erkennt das Problem nicht. Bei geplanten Aufgaben müssen Sie wissen, ob die erwartete Arbeit rechtzeitig abgeschlossen wurde. Ein Heartbeat liefert dieses Signal direkt aus dem Job.

Überwachen Sie das Ergebnis, nicht nur den Start

Sendet ein Job sein Signal sofort und schlägt anschließend fehl, kann der Monitor einen irreführenden Erfolg anzeigen. Melden Sie den Abschluss erst nach Prüfung des Ergebnisses: gespeicherter Export, erfolgreicher Import oder gültige Sicherung. Unterscheidet das System Start und Ende, überwachen Sie auch ungewöhnlich lange Laufzeiten.

Ein erfolgreicher Exit-Code bestätigt nicht unbedingt ein brauchbares Ergebnis. Ein Import ohne Datensätze kann korrekt sein oder auf eine nicht erreichbare Quelle hinweisen. Ergänzen Sie passende Prüfungen für Datenmenge, Aktualität oder das Vorhandensein der Ausgabedatei.

Passen Sie die Frist an den Zeitplan an

Ein täglicher Job braucht eine tägliche Frist mit angemessener Verspätungstoleranz. Zu wenig Toleranz erzeugt Fehlalarme, zu viel lässt Fehler stundenlang verborgen. Unterscheiden Sie lokale Zeit und UTC. Die Zeitumstellung kann einen Job beeinflussen, der nachts zu einer bestimmten Uhrzeit laufen soll.

Schützen Sie Signal und Aufgabe

Eine Heartbeat-Adresse kann einen geheimen Token enthalten. Behandeln Sie sie als Zugangsdaten und schreiben Sie sie nicht in öffentliche Logs. Das Senden braucht einen Timeout, damit ein ausgefallener Monitor die abgeschlossene Arbeit nicht blockiert. Unterscheiden Sie lokal zwischen fehlgeschlagener Meldung und fehlgeschlagener Verarbeitung.

Verhindern Sie überlappende Läufe, wenn die Aufgabe dafür nicht ausgelegt ist. Nach einem Neustart müssen ausgefallene Läufe eventuell nachgeholt werden. Klären Sie, ob eine Wiederholung dieselben Daten sicher verarbeitet, und richten Sie den Wiederherstellungsablauf danach aus.

Bereiten Sie die Reaktion auf fehlende Signale vor

Ein Alarm sollte die Aufgabe, das letzte erfolgreiche Ergebnis und die verantwortliche Person nennen. Eine fehlende Sicherung verlangt eine andere Reaktion als ein verspäteter interner Bericht. Prüfen Sie vor dem erneuten Start, ob der ursprüngliche Prozess noch läuft und doppelte Verarbeitung möglich wäre.

  • Nächtliche Backups und Exporte.
  • Produktimporte und Synchronisationen.
  • Berichte und Abrechnungsaufgaben.
  • Wartung und regelmäßige Datenbereinigung.

Was Sie mitnehmen

Eine grüne Website bestätigt keine gesunden Hintergrundaufgaben. Ergänzen Sie ein Abschluss-Signal überall dort, wo sonst erst ein Kunde das fehlende Ergebnis bemerken würde.

Dokumentation und weiterführende Links

Mgr. Martin Hlavaj, MBA

Softwareentwickler

Alle Artikel

Erfahren Sie frühzeitig von Ausfällen.

Fügen Sie Ihre Website oder API zu UpBot hinzu und bestimmen Sie, wer den Alarm erhält.

Kostenlos überwachen