# Verwendung

> Jobs erstellen, Ausführungshistorie und Admin-UI

---

## Job erstellen

`Steuerungspanel → Cron Job Scheduler → Neuer Job`:

| Feld | Bedeutung |
| :--- | :--- |
| **Name (Slug)** | technischer Bezeichner, `a-z 0-9 _ -`. **Nur-lesen für [durch Module angebotene Jobs](./howto-use/self-registration)** (deren `<module>:<name>`-Schlüssel ist fix); editierbar für selbst erstellte Jobs. |
| **Titel** | menschenlesbarer Name |
| **Trigger** | ein oder mehrere **Zeit-Trigger** (Cron-Zeitpläne) und/oder **Ereignis-Trigger** — der Job feuert, wenn *irgendein* Trigger feuert. Mindestens einer ist erforderlich. |
| **Cron-Ausdruck** | (Zeit-Trigger) Standard-5-Feld-Cron oder ein Makro (`@daily`, `@weekly`, …). **Zeiten sind UTC.** |
| **Ereignisname** | (Ereignis-Trigger) das [Ereignis](./events), auf das dieser Job reagiert. Slug oder `<domain>:slug`, max. 64 Zeichen. |
| **Befehl** | ein `modules_v4/<module>/cli/<script>.php`-Pfad oder ein erlaubter Core-Befehl. |
| **Argumente** | nur einfache Optionen/Werte (z.B. `--limit=5000`), max. 10 Tokens |
| **Timeout** | 30 - 3600 s |
| **Bei Fehler benachrichtigen** | Opt-in: Admin-Konten bei Job-Fehlern benachrichtigen |

Verfügbare Ereignisnamen und Befehle werden als Datalists bereitgestellt, um die Dateneingabe zu erleichtern.

![Neuer Cronjob](img/cj/new-cronjob.png)

Der **Jetzt ausführen**-Button stellt den Job für den nächsten [Tick](./tick) in die Warteschlange (≤ 60 s). Die **Verlauf**-Seite zeigt Status, Exit-Code, Dauer, den auslösenden Trigger und die erfasste Ausgabe (letzte 64 KB) der letzten 25 Läufe pro Job (plus 30-Tage-globale Aufbewahrung).

![Ausführungshistorie](img/cj/run-history.png)

Die Job-Tabelle ist ein **Client-seitiger DataTable** (Suchfeld, sortierbare Spalten, Paginierung, Status im Browser gespeichert). Die Spalten **Aktiviert** und **Benachrichtigung** können an Ort und Stelle umgeschaltet werden. Pro Zeile: **Duplizieren** und **Zurücksetzen** (stellt modulangebotene Standardwerte wieder her).
