Task-Manager
Der Task-Manager ist das operative Dashboard fuer jeden Hintergrundjob im CMS: geplante Aufgaben (Sitemap, Session-Cleanup, E-Learning-Erinnerungen), Warteschlangen-Jobs (alles, was nicht in einem HTTP-Request fertig wird) und die ausgehende Webhook-Warteschlange. Dazu der rohe Systemstatus — PHP-Version, Extension-Flags, Speicher-Limit, Cron-Laufzeiten.
Oeffne Einstellungen → Task-Manager. Der Screen hat vier Tabs.

Tab 1 — Systemstatus
Der Status-Tab ist ein Karten-Raster. Lies ihn von oben nach unten, um eine langsame Site zu diagnostizieren.
| Karte | Worauf achten |
|---|---|
| PHP-Version | 8.2 oder hoeher. Aeltere Versionen laufen, werden aber nicht unterstuetzt. |
| MySQL-Version | Zur Info. Unterstuetzt: MySQL 5.7+, MariaDB 10.4+. |
| Server | Der Server:-Header des Webservers. |
| Max. Ausfuehrungszeit | PHP max_execution_time. Lange Jobs (Imports, Deploys) brauchen mindestens 300 Sekunden. |
| Speicher-Limit | PHP memory_limit. 256M ist knapp, 512M angenehm, 1G fuer grosse Imports. |
| Zend OPcache | Muss Aktiv sein auf Produktion. Sonst langsam. |
| APCu | Muss Aktiv sein. Sonst kein Rate-Limiting und kein Response-Cache. |
| PCRE JIT | Sollte Aktiv sein. Regex-Performance. |
| Nuxt | Version des Frontend-Builds. |
| Ausstehende Aufgaben | Jobs, die auf Bearbeitung warten. Stabil nicht-null = ok. Wachsend = Worker laeuft nicht. |
| Fehlgeschlagene Aufgaben | Jobs, die das Wiederholungs-Limit erreicht haben. Untersuchen und aufraeumen. |
| Letzter Cron-Lauf | Letzter Lauf des Schedulers. Sollte innerhalb der letzten 60 Sekunden liegen. |
| Naechster Cron-Lauf | Best-Effort-Schaetzung fuer den naechsten Lauf. |
Cron laeuft nicht
Ist Letzter Cron-Lauf mehrere Minuten alt, feuern geplante Aufgaben nicht. Der Server-Cron-Eintrag fehlt oder ist falsch. Bitte deinen Entwickler, ./console/bin scheduled-tasks als Cron einzurichten.
Tab 2 — Warteschlange
Die Warteschlange haelt API-Jobs, die ausserhalb des Requests laufen. Beispiele: AI-Layout-Generierung, Massen-Imports, lange CSV-Exports. Jeder Job hat einen Status: pending, processing, completed, failed.

Spalten:
| Spalte | Zweck |
|---|---|
| Endpunkt | Der API-Pfad des Jobs. |
| Methode | GET / POST / PATCH / DELETE. |
| Status | Siehe vier Zustaende oben. |
| Versuche | z.B. 2 / 3. Der Worker wiederholt fehlgeschlagene Jobs bis max_attempts. |
| Erstellt | Wann der Job in die Warteschlange kam. |
| Fehler | Letzte Fehlermeldung, falls vorhanden. |
Job wiederholen oder loeschen
- Wiederholen (Rotate-Icon) — Job neu einreihen.
attemptszurueck auf 0, Status aufpending. - Löschen (Muell-Icon) — Job entfernen. In jedem Status moeglich.
Filter
Das Auswahlfeld im Header filtert nach Status (Alle, Wartend, In Bearbeitung, Abgeschlossen, Fehlgeschlagen).
Tab 3 — Geplante Aufgaben
Geplante Aufgaben laufen in festem Intervall. Sie werden von Plugins bei der Installation registriert und leben in der Tabelle scheduled_tasks.

Pro Aufgabe siehst du:
| Spalte | Zweck |
|---|---|
| Name | Sprechender Name, z.B. Session Cleanup, Sitemap Generation. |
| Intervall | Wie oft die Aufgabe laeuft (z.B. alle 300 Sekunden = 5 Minuten). |
| Letzter Lauf | Zeitstempel des letzten erfolgreichen Laufs. |
| Naechster Lauf | Wann der naechste Lauf ansteht. |
| Aktiv | Schalter zum Ein-/Ausschalten. |
| Ueberfaellig | Roter Badge, wenn Naechster Lauf in der Vergangenheit liegt. Heisst: Cron feuert nicht. |
Aufgabe jetzt ausfuehren
Klick auf das Play-Symbol, um die Aufgabe sofort zu feuern. Die Seite zeigt einen Spinner und aktualisiert Letzter Lauf.
Eingebaute Aufgaben
| Aufgabe | Intervall | Was sie tut |
|---|---|---|
| Session Cleanup | 5 Min | Entfernt DB-Sessions, die laenger als 2 Stunden inaktiv sind. |
| Sitemap Generation | 1 Tag | Regeneriert /sitemap.xml. |
| Publish Scheduled Pages | 5 Min | Veroeffentlicht Entwuerfe, deren scheduled_at erreicht ist. |
| Elasticsearch Reindex | 1 Min | Nimmt einen Reindex-Job pro Lauf entgegen. |
| E-Learning Check Expiry | 1 Stunde | Prueft CME-Kursablauf pro Teilnehmer. |
| E-Learning Process Purchases | 60 Sek | Aktiviert Kaeufe und schaltet Kurse frei. |
| Shopware 6 Category Sync | 6 Stunden | Aktualisiert den lokalen Shopware-Kategorie-Cache. |
| Shopware 6 Session Cleanup | 1 Tag | Entfernt veraltete CMS-zu-Shopware-Session-Mappings. |
Plugins koennen eigene Aufgaben ueber bootstrap.php registrieren.
Tab 4 — Webhooks
Zeigt die ausgehende Webhook-Warteschlange und die Zustellhistorie. Siehe Webhooks.
Die zwei Badges im Tab-Label zeigen schnell, ob etwas haengt:
- Gelb — noch nicht gefeuerte Zustellungen.
- Rot — Fehlschlaege in den letzten 24 Stunden.
Die Cron-Voraussetzung
Alles auf dieser Seite haengt an einem einzigen OS-Cron-Eintrag, der alle 30 Sekunden den Task-Runner aufruft:
* * * * * /usr/bin/php /pfad/zur/site/console/bin scheduled-tasks --time-limit=25
* * * * * (sleep 30; /usr/bin/php /pfad/zur/site/console/bin scheduled-tasks --time-limit=25)
* * * * * /usr/bin/php /pfad/zur/site/console/bin process-webhooks --time-limit=25
* * * * * (sleep 30; /usr/bin/php /pfad/zur/site/console/bin process-webhooks --time-limit=25)Das process-webhooks-Kommando arbeitet die ausgehende Webhook-Warteschlange alle 30 Sekunden ab und ist ein eigener Eintrag neben scheduled-tasks. Fehlt einer der beiden Cron-Eintraege, fuellt sich die Warteschlange, Webhooks feuern nicht, Sessions werden nicht aufgeraeumt, Sitemap wird alt. Die Letzter Cron-Lauf-Karte auf dem Status-Tab ist der Ein-Wert-Check.
Haeufige Fehler
Ausstehende Aufgaben waechst staendig. Cron laeuft nicht. Pruef Letzter Cron-Lauf. Aelter als zwei Minuten = Eintrag fixen.
APCu-Karte ist rot. Installiere php-apcu auf dem Server und starte PHP-FPM neu. Rate-Limiting und Response-Cache funktionieren ohne APCu nicht.
Eine geplante Aufgabe haengt auf "running". Der Prozess ist mittendrin abgestuerzt. Klick das Auffrischen-Icon, um das is_running-Flag zurueckzusetzen, und fuehr die Aufgabe manuell aus.
Fehlgeschlagene Aufgabe zeigt "Connection refused". Der Job rief eine nicht erreichbare URL. Wiederholen nach Fix, oder loeschen falls obsolet.
Siehe auch
- Update-Manager — System-Updates, Migrationen, Deployments.
- Webhooks — die Webhook-Warteschlange in Tab 4.
- Cache — der Response-Cache teilt sich APCu mit dem Rate-Limiter.