OpenCognitOpenCognitDOCS

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

FeldWerteBeschreibung
concurrencyPolicyskip, queue, replaceWas passiert, wenn die Routine noch läuft?
catchUpPolicyskip, run_onceWas 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

AusdruckBeschreibung
0 9 * * 1-5Werktags um 9:00 Uhr
0 * * * *Jede Stunde
0 8 * * 1Jeden Montag um 8:00 Uhr
*/15 * * * *Alle 15 Minuten
0 18 * * 5Freitags 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:

PolicyVerhalten
skipNeue Ausführung wird übersprungen (empfohlen für lange Tasks)
queueNeue Ausführung wird in die Warteschlange gestellt
replaceLaufende Ausführung wird abgebrochen, neue startet

Catch-Up Policy

Definiert, was passiert bei verpassten Ausführungen (z.B. System war offline):

PolicyVerhalten
skipVerpasste Ausführungen werden ignoriert
run_onceEine 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

MethodEndpointBeschreibung
GET/api/unternehmen/:id/routinenAlle Routinen auflisten
POST/api/unternehmen/:id/routinenNeue Routine erstellen
GET/api/routinen/:idRoutine-Details
PATCH/api/routinen/:idRoutine aktualisieren
DELETE/api/routinen/:idRoutine löschen
GET/api/routinen/:id/triggersTrigger abrufen
POST/api/routinen/:id/triggersTrigger anlegen
POST/api/routinen/:id/triggerManuell auslösen
GET/api/routinen/:id/ausfuehrungenAusführungshistorie