T3 Campus T3 Campus

Cronjobs in TYPO3

In TYPO3 lassen sich Cronjobs ganz einfach mit dem Scheduler erstellen, um PHP-Skripte im Hintergrund auszuführen.

Wenn Du TYPO3 benutzt, hast Du bestimmt schon von TYPO3 Cronjobs gehört. Diese erlauben Dir, automatisierte Aufgaben, wie z.B. das Ausführen von Code oder Befehlen, im Hintergrund auszuführen. Das Einrichten von Cronjobs in TYPO3 ist einfacher, als Du denkst: Du musst nur den Scheduler aktivieren, die gewünschten Tasks hinzufügen und den Cronjob auf Deinem Hosting-Server einrichten. Es ist ein Schritt-für-Schritt-Prozess, der Dir ermöglicht, die volle Kontrolle über Deine Cronjobs zu haben.

Was ist ein Cronjob?

Ein Cronjob ist ein wichtiger Bestandteil von TYPO3, der es Dir ermöglicht, regelmäßig wiederkehrende Aufgaben automatisch ausführen zu lassen. Dabei kann es sich um verschiedene Tasks handeln, wie z.B. das Löschen von temporären Dateien, Import-/Export - Skripte, Bulk E-Mailversand oder das Aktualisieren von Datenbanken.

Der Vorteil von Cronjobs besteht darin, dass sie vom Server aus ausgeführt werden. Dadurch ist keinerlei Benutzerinteraktion auf Deiner Webseite erforderlich. Alles geschieht im Hintergrund, ohne dass Deine Benutzer davon etwas mitbekommen.

Wie erstellt man ein Cronjob?

Wenn Du in TYPO3 eine bestimmte Aufgabe automatisch ausführen möchtest, dann ist ein Cronjob die perfekte Lösung. Dabei ist der Cronjob kein Teil von TYPO3 selber, sondern Teil deines Webservers. Egal, ob UNIX oder Windows - Server, beide unterstützen Cronjobs.

Die Erstellung auf Unix - Ebene geht mittels des crontab - Befehls oder über der Adminoberfläche Deines Hosters.

Eine Zeile innerhalb der crontab - Datei ist folgenden Gruppen aufgeteilt:

<Zeitintervall> <Pfad zur PHP Binary> <Pfad zum Scheduler CLI Skript>

Zeitintervall

Die erste Gruppe ist die Angabe des Zeitintervalls. Dieser kann sehr vielfältig sein. Beispielsweise lässt sich ein CLI Skript in folgenden Zeitabständen ausführen:

  • jede Minute an jedem Tag in jedem Monat entspricht * * * * *
  • jeden Tag um 0 Uhr, entspricht 0 0 * * *
  • um 0 Uhr am ersten Tag jedes Monats, entspricht 0 0 1 * *

Die Anzahl der Ziffern ist nicht zufällig, sondern immer 5 Stück. Diese haben folgende Bedeutung:

1. Stelle 2. Stelle 3. Stelle 4. Stelle 5. Stelle
Minute Stunde Tag im Monat Monat Tag in der Woche (0 = Sonntag)

PHP Binary

An dieser Stelle musst du den absoluten Serverpfad zur PHP-Binary angeben. Es ist wichtig, dass es die gleiche PHP-Version mit den gleichen Einstellungen ist wie die Deiner TYPO3-Webseite. Das mag selbstverständlich klingen, ist es aber nicht unbedingt. Besonders wenn Dein Hoster es erlaubt, für jede Domain eine andere PHP-Version anzugeben, musst Du genau darauf achten, welche PHP-Version Deine TYPO3-Webseite verwendet. Du kannst dies selbst im Install Tool überprüfen.

Pfad zum Scheduler CLI Skript

Der absolute Serverpfad zu dem CLI Skript des TYPO3 Schedulers kannst du ganz einfach im Backend nachlesen.

Gehe dazu in das Backendmodul des Schedulers und wähle im obigen DropDown - Menü: Scheduler Setup check aus.

Scheduler Backend Modul -> Setup Check

Dort findest Du bei CLI Script den absoluten Serverpfad, den Du so kopieren kannst.

Was ist der Scheduler?

Der TYPO3 Scheduler ist eine Systemextension, die aus eine Backendmodul und Scheduler Tasks besteht.

Der Scheduler wird vom Server via Cronjob ausgeführt. Der Scheduler prüft dann, welche Scheduler Tasks in diesem Durchlauf ausgeführt werden sollen. Dabei können die Scheduler Tasks ebenso zeitgesteuert eingestellt werden, wie ein Cronjob.

Ein Scheduler Tasks ist eine PHP Klasse mit einem bestimmten Aufbau. In diesem Task kannst du Deinen eigenen PHP Code einbinden.

Ab TYPO3 12 wird allerdings empfohlen, keinen Task zu erstellen, sondern ein Symfony Command.

Fazit

Du hast nun alle wichtigen Schritte gelernt, um einen TYPO3 Cronjob einzurichten und zu nutzen.

Damit Du in TYPO3 Cronjobs nutzen kannst, musst Du sicherstellen, dass Dein Hoster oder Hostingpaket es zulässt serverseitig Cronjobs zu erstellen. Oftmals haben Einsteigerpakete keine Möglichkeit, Cronjobs zu erstellen.

Wenn Du diese Schritte befolgst und Deinen TYPO3 Cronjob richtig einrichtest, können automatisierte Tasks ein echter Zeitgewinn sein und Dir viel Arbeit ersparen.

Wenn Du lernen möchtest, wie man in TYPO3 Scheduler Tasks und Symfony Commands erstellt. Dann schaue auf meinem YouTube-Kanal vorbei. Dort findest du unter anderem ein Scheduler Task und Symfony Command Tutorial.