# Geplante Aufgabe überwachen

> Lege in up4 eine geplante Aufgabe an, rufe ihre Rückmelde-URL aus Cron, Skript oder CI auf und werde alarmiert, wenn ein Lauf ausbleibt.

Source: https://upfour.io/de/docs/watch-a-scheduled-job

Danach erwartet up4 eine Rückmeldung von deinem Cronjob, Backup oder Worker und alarmiert dich, wenn ein Lauf ausbleibt oder einen Fehler meldet.

- **Wer:** Alle Rollen außer **Betrachter**
- **Dauer:** Etwa fünf Minuten
- **Kosten:** 3 € pro Million Rückmeldungen

Du brauchst Zugriff auf den Ort, an dem die Aufgabe läuft. Berechnet wird jede angenommene Rückmeldung.

**In up4:** Überwachung › Geplante Aufgaben › Neue geplante Aufgabe · [In up4 öffnen](https://app.upfour.io/heartbeats/new)

## Schritte

### 1. [Aufgabe benennen](https://upfour.io/de/docs/watch-a-scheduled-job#name)

Gib unter **Name** einen Namen ein, zum Beispiel `Tägliches Datenbank-Backup`. Der Name steht in den Alarmen, nimm also einen, den dein Team erkennt.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-name.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-name.webp)

### 2. [Rückmeldeabstand festlegen](https://upfour.io/de/docs/watch-a-scheduled-job#interval)

Gib unter **Rückmeldung erwartet alle** eine Zahl ein und wähle Sekunden, Minuten, Stunden oder Tage. Der Abstand soll zum echten Zeitplan der Aufgabe passen. Der kürzeste Abstand ist 30 Sekunden.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-interval.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-interval.webp)

### 3. [Toleranzzeit festlegen](https://upfour.io/de/docs/watch-a-scheduled-job#grace)

Gib unter **mit einer Toleranzzeit von** an, wie lange up4 nach Ablauf des Abstands noch wartet, bevor ein Lauf als ausgeblieben gilt. Ein Backup, das 20 bis 40 Minuten dauert, braucht eine Toleranzzeit, die diese Schwankung abdeckt.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-grace.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-grace.webp)

### 4. [Aufgabe anlegen](https://upfour.io/de/docs/watch-a-scheduled-job#create)

Wähle **Anlegen**. up4 öffnet die Aufgabe mit dem Block **Aufgabe verbinden** und ihrer Rückmelde-URL.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-create.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-create.webp)

### 5. [Rückmelde-URL kopieren](https://upfour.io/de/docs/watch-a-scheduled-job#url)

Wähle neben der URL **Kopieren**. Ein Teil ist auf dem Bildschirm verdeckt; **Schlüssel anzeigen** zeigt ihn, kopiert wird immer die ganze URL. Behandle sie wie ein Passwort: Wer sie kennt, kann die Aufgabe als erfolgreich melden. Sie bleibt gleich, wenn du die Aufgabe erneut speicherst.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-url.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-url.webp)

### 6. [URL nach erfolgreichem Lauf aufrufen](https://upfour.io/de/docs/watch-a-scheduled-job#call)

Füge den Aufruf ans Ende der Aufgabe, nach der eigentlichen Arbeit. Diese Crontab-Zeile führt die Aufgabe aus und meldet Erfolg, bei einem Fehler das Fehlersignal:

```
0 3 * * * /usr/local/bin/backup.sh \
  && curl -fsS -m 10 --retry 3 https://app.upfour.io/v1/heartbeat/DEIN-SLUG >/dev/null \
  || curl -fsS -m 10 --retry 3 https://app.upfour.io/v1/heartbeat/DEIN-SLUG/fail >/dev/null
```

Ersetze die Adresse durch die kopierte. Schreibe die Crontab-Zeiten in UTC, denn die lokale Zeitumstellung kann Läufe auslassen oder doppeln. Der Block enthält auch fertige Vorlagen unter **Shell-Skript**, GitHub Actions, WordPress / PHP, Node und **Docker-Container**. Alle nutzen dieselbe URL: `HEAD`, `GET` und `POST` funktionieren.

Hängst du `/fail` an die URL, meldet up4 sofort einen fehlgeschlagenen Lauf, ohne zu warten. Eine Zahl von 1 bis 255 statt `fail`, etwa ein Exit-Code, zählt ebenfalls als Fehler. Beide Wege stehen im Block unter **Weitere Endpunkte · /fail und Exit-Codes**.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-call.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-call.webp)

### 7. [Aufgabe einmal ausführen](https://upfour.io/de/docs/watch-a-scheduled-job#first)

Die Frist beginnt mit der ersten Rückmeldung, eine Aufgabe ohne Rückmeldung löst also keinen Alarm aus. Starte sie von Hand oder öffne die URL in einem Browser-Tab. Die Seite wartet und aktualisiert sich von selbst.

[![](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-first.webp)](https://upfour.io/docs/images/walk/de/watch-a-scheduled-job-first.webp)

## So siehst du, dass es geklappt hat

Die Seite der Aufgabe zeigt **Erste Rückmeldung eingegangen**, und in der Liste wechselt die Aufgabe von **Wartet auf Rückmeldung** zu **Im Zeitplan**.

Ab jetzt rechnet up4 ab der letzten Rückmeldung, die angekommen ist.

## Was passiert, wenn eine Rückmeldung ausbleibt

| Wann | Was du siehst und was up4 tut |
| --- | --- |
| Eine Rückmeldung kommt innerhalb des Abstands | Die Aufgabe zeigt **Im Zeitplan**. Sonst passiert nichts. |
| Der Abstand ist um, die Toleranzzeit noch nicht | Die Aufgabe zeigt **Verspätet**. Noch wird niemand alarmiert. |
| Abstand und Toleranzzeit sind beide um | Die Aufgabe zeigt **Überfällig**. up4 legt einen Vorfall an und alarmiert einmal. Überfällige Aufgaben sucht up4 alle 30 Sekunden. |
| Die Aufgabe meldet einen Fehler | Die Aufgabe gilt sofort als ausgefallen, mit Vorfall und Alarm, ohne den Abstand abzuwarten. |
| Die nächste erfolgreiche Rückmeldung kommt an | Die Aufgabe ist wieder pünktlich, der Vorfall wird geschlossen und up4 schickt eine Entwarnung. |

Der Alarm geht an die Benachrichtigungskanäle deines Unternehmens. Gehört die Aufgabe zu einem Kunden, gelten auch die Kanäle dieses Kunden. [Benachrichtigungskanäle einrichten](https://upfour.io/de/docs/receive-alerts.md). Bei geplanter Arbeit pausierst du die Aufgabe im Menü **Aktionen** auf ihrer Seite mit **Pausieren**: Eine pausierte Aufgabe alarmiert nie, nimmt keine Rückmeldungen an und kostet nichts. Mit **Fortsetzen** im selben Menü schaltest du sie wieder ein.

## Wenn etwas nicht stimmt

Die Aufgabe bleibt bei Wartet auf Rückmeldung.

Es ist noch keine Rückmeldung angekommen. Führe den Aufruf von Hand aus und vergleiche deine Zeile mit der im Einrichtungsblock. Lies, was `curl` ausgibt: Ein abgelehnter Aufruf nennt den Grund.

Die Aufgabe zeigt Überfällig, obwohl sie gelaufen ist.

Der Aufruf kam zu spät oder gar nicht. Erhöhe die Toleranzzeit bei Läufen mit schwankender Dauer oder prüfe, ob der Server der Aufgabe die URL erreicht.

Die Aufgabe zeigt Pausiert, ihre Rückmeldungen werden abgelehnt.

Jemand hat sie pausiert. Wähle auf der Seite der Aufgabe im Menü Aktionen den Eintrag Fortsetzen.

## Was up4 hier nicht macht

- Eine Rückmeldung zeigt, dass deine Aufgabe die URL aufgerufen hat, nicht dass sie richtig gearbeitet hat. Rufe sie erst nach erfolgreicher Arbeit auf und melde Fehler mit dem Fehlersignal.
- Geplante Aufgaben haben keinen Alarmplan, keinen Bereitschaftsplan und keine Kanalwahl je Aufgabe. Jeder Alarm geht an die oben beschriebenen Kanäle.
- Solange die Abrechnung deines Unternehmens pausiert ist, bestätigt up4 Rückmeldungen, ignoriert sie aber, und keine Aufgabe gilt als überfällig. Im Übergangsmodus gilt ein gemeinsames Tageskontingent gespeicherter Rückmeldungen: Weitere halten die Aufgabe nur am Leben.
- Die Seite der Aufgabe führt ein Rohprotokoll der Rückmeldungen mit Zeit und Quelladresse. Wie lange up4 es aufbewahrt, steht unter [Daten und Datenschutz](https://upfour.io/de/docs/how/data-and-privacy.md).

[Per API POST /v1/heartbeats](https://upfour.io/docs/api/heartbeats#post_heartbeats)

Die Rückmeldung selbst braucht keinen Schlüssel: Sende `HEAD`, `GET` oder `POST` an `/v1/heartbeat/{slug}`, für einen Fehler mit angehängtem `/fail` oder einem Exit-Code von 1 bis 255\. Die Antwort beim Anlegen enthält die vollständige URL. Die [Referenz zu geplanten Aufgaben](https://upfour.io/docs/api/heartbeats.md) und das [Backup-Rezept](https://upfour.io/docs/api/recipes/backup-heartbeat.md) (Englisch) behandeln Pausieren, Fortsetzen, das Rückmeldeprotokoll und die Webhooks für ausgebliebene und wieder eingegangene Rückmeldungen.

| In der App | API-Feld |
| --- | --- |
| Name | `name` |
| Rückmeldung erwartet alle · Ganze Sekunden; das Formular rechnet Sekunden, Minuten, Stunden oder Tage um. | `expected_interval_seconds` |
| mit einer Toleranzzeit von · Ganze Sekunden, null oder mehr. | `grace_period_seconds` |
| Gruppe | `heartbeat_group_id` |
| Kunde | `client_id` |
| Metadaten | `metadata` |

[Vollständige Referenz (Englisch)](https://upfour.io/docs/api/heartbeats#post_heartbeats)
