Routinen & Scheduling
Wiederkehrende Aufgaben mit Cron-Triggern automatisieren.
Was sind Routinen?
Routinen sind vordefinierte Aufgaben, die automatisch nach einem Zeitplan ausgeführt werden. Sie sind ideal für:
- Täglich: Morgen-Reports, Status-Updates, Datensicherungen
- Wöchentlich: Sprint-Reviews, Kosten-Zusammenfassungen
- Stündlich: Monitoring-Checks, API-Abfragen
- Event-basiert: Webhook-Trigger von externen Systemen
Routine anlegen
POST /api/unternehmen/:id/routinen
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Täglicher Morgen-Report",
"beschreibung": "Erstelle einen Status-Report über alle laufenden Projekte.",
"expertId": "<experten-id>",
"concurrencyPolicy": "skip",
"catchUpPolicy": "skip"
}Felder
| Feld | Werte | Beschreibung |
|---|---|---|
concurrencyPolicy | skip, queue, replace | Was passiert, wenn die Routine noch läuft? |
catchUpPolicy | skip, run_once | Was passiert bei verpassten Ausführungen? |
Cron-Trigger
Routinen werden über 5-Feld-Cron-Ausdrücke getriggert:
┌───────────── Minute (0–59)
│ ┌───────────── Stunde (0–23)
│ │ ┌───────────── Tag des Monats (1–31)
│ │ │ ┌───────────── Monat (1–12)
│ │ │ │ ┌───────────── Wochentag (0–6, So=0)
│ │ │ │ │
* * * * *Beispiele
| Ausdruck | Beschreibung |
|---|---|
0 9 * * 1-5 | Werktags um 9:00 Uhr |
0 * * * * | Jede Stunde |
0 8 * * 1 | Jeden Montag um 8:00 Uhr |
*/15 * * * * | Alle 15 Minuten |
0 18 * * 5 | Freitags um 18:00 Uhr |
0 0 1 * * | Ersten Tag jedes Monats um Mitternacht |
Trigger anlegen
POST /api/routinen/:id/triggers
Authorization: Bearer <token>
Content-Type: application/json
{
"typ": "schedule",
"cron": "0 9 * * 1-5",
"beschreibung": "Werktags um 9 Uhr"
}Trigger-Typen
Zeitbasierte Ausführung mit 5-Feld-Cron-Ausdruck.
{
"typ": "schedule",
"cron": "0 9 * * 1-5"
}Sofortige Ausführung über API oder Dashboard.
POST /api/routinen/:id/trigger
Authorization: Bearer <token>Trigger durch externe Systeme via HTTP POST.
{
"typ": "webhook",
"secret": "mein-webhook-secret"
}Der Webhook-Endpunkt wird automatisch generiert. Das secret wird zur Signaturverifizierung genutzt.
Ausführungshistorie
Jede Routine-Ausführung wird protokolliert:
GET /api/routinen/:id/ausfuehrungen
Authorization: Bearer <token>Antwort:
[
{
"id": "run-123",
"status": "success",
"gestartetAm": "2026-04-04T09:00:00Z",
"beendetAm": "2026-04-04T09:03:42Z",
"durationMs": 222000,
"triggerTyp": "schedule",
"tokenVerbrauch": 1240,
"kostenCent": 18
}
]Concurrency & Catch-Up Policies
Concurrency Policy
Definiert, was passiert, wenn ein Trigger feuert, während die Routine noch läuft:
| Policy | Verhalten |
|---|---|
skip | Neue Ausführung wird übersprungen (empfohlen für lange Tasks) |
queue | Neue Ausführung wird in die Warteschlange gestellt |
replace | Laufende Ausführung wird abgebrochen, neue startet |
Catch-Up Policy
Definiert, was passiert bei verpassten Ausführungen (z.B. System war offline):
| Policy | Verhalten |
|---|---|
skip | Verpasste Ausführungen werden ignoriert |
run_once | Eine Nachholausführung wird sofort gestartet |
Für die meisten Anwendungsfälle empfehlen wir concurrencyPolicy: "skip" und catchUpPolicy: "skip". So werden keine Ausführungen angehäuft, wenn das System kurz offline war.
Routinen-API Übersicht
| Method | Endpoint | Beschreibung |
|---|---|---|
GET | /api/unternehmen/:id/routinen | Alle Routinen auflisten |
POST | /api/unternehmen/:id/routinen | Neue Routine erstellen |
GET | /api/routinen/:id | Routine-Details |
PATCH | /api/routinen/:id | Routine aktualisieren |
DELETE | /api/routinen/:id | Routine löschen |
GET | /api/routinen/:id/triggers | Trigger abrufen |
POST | /api/routinen/:id/triggers | Trigger anlegen |
POST | /api/routinen/:id/trigger | Manuell auslösen |
GET | /api/routinen/:id/ausfuehrungen | Ausführungshistorie |