Tipps & Tutorials

So nimmt Joomla Ihnen mit dem Task Scheduler Arbeit ab


Veröffentlicht am 04.12.2024 von Elisa Foltyn

Seit Joomla 4.1 glänzt das Content-Management-System mit dem Task Scheduler – einer häufig unterschätzten Core-Funktion. In diesem Blogbeitrag zeige ich Ihnen, was der Task Scheduler eigentlich ist und welche Zaubereien Sie damit auf Ihrer Webseite vollbringen können. Doch zunächst zu den Basics: Was genau ist der Task Scheduler und wo findet man ihn?


 

Der Task Scheduler, auch bekannt als „Poor Man’s Cron“, funktioniert folgendermaßen: Bei jedem Besuch Ihrer Webseite wird durch diese Funktion ein Trigger gesetzt, der ein Skript ausführen kann. Dadurch macht der Task Scheduler klassische Cronjobs* teilweise überflüssig – alles, was Sie brauchen, um eine Aufgabe auszuführen, ist ein Besucher auf Ihrer Webseite.

*Cronjob:
Ein Cronjob ist eine zeitgesteuerte Aufgabe, die automatisch zu festgelegten Zeiten oder Intervallen ausgeführt wird. Dafür wird ein Dienst verwendet, der kontinuierlich im Hintergrund läuft und darauf wartet, Aufgaben auszuführen. Cronjobs sind besonders nützlich für regelmäßige Wartungsarbeiten und tragen maßgeblich zur Effizienzsteigerung bei. 

Welche Aufgaben kann ich mit dem Task Scheduler anlegen?

Der Nachteil dieses „Poor Man’s Cron” ist, dass ein Webseitenbesuch notwendig ist, um die Aufgabe auszuführen. Aber keine Sorge: Der Task Scheduler bietet die Option, einen Endpunkt für einen einzelnen Cronjob einzurichten, der alle Aufgaben gleichzeitig anstößt.

Sie finden den Task Scheduler im Backend unter „System” hinter dem Link „Geplante Aufgaben" bzw. auf Englisch „Scheduled Tasks”. Um die erste Aufgabe anzulegen, klicken Sie wie gewohnt oben in der Toolbar auf „Neu” oder auf „Die erste Aufgabe anlegen”.

 

Abbildung: Der Task Scheduler im Backend von Joomla

Anschließend sehen Sie die Aufgaben, die Joomla von Haus aus zur Verfügung stellt:

Benutzeraktivitäten löschen

Löscht Benutzeraktivitäten nach einem gewählten Zeitraum.

Sitzungsdatenbereinigung

Bereinigt abgelaufene Daten und Metadaten in Abhängigkeit vom Sitzungsspeicher.

Status Website umschalten

Schaltet den Status der Website bei jedem Lauf um.

Globales Freigeben

Freigeben von gesperrten Einträgen.

Joomla-Update-Mitteilung

Diese Aufgabe prüft, ob eine aktuellere Joomla-Version verfügbar ist. Wird eine neue Version gefunden, schickt es eine E-Mail mit der Erinnerung, Joomla zu aktualisieren. 

Website online schalten

Setzt den Status der Website bei jedem Lauf auf online.

Ablauf der Datenschutzzustimmung

Verwaltet das Auslaufen von Datenschutzzustimmungen.

Überprüfung der Bildgröße

Bilder überprüfen und die Größe ändern, wenn sie größer als zulässig sind. Achtung: Die Originaldatei wird überschrieben!

Website offline schalten

Setzt den Status der Website bei jedem Lauf auf offline.

Protokollrotation

Rotiert regelmäßig die Protokolldateien.

GET-Anfrage

GET-Anfragen an einen Server stellen. Unterstützt eine benutzerdefinierte Zeitüberschreitung und Autorisierungs-Header

Zwei Core Tasks möchte ich besonders hervorheben, die meiner Meinung auf jeder Seite nützlich sind:

Globales Freigeben

Wer schon immer genervt war, dass Autoren ihre Beiträge „gesperrt” hinterlassen, kann nun über eine Routineaufgabe einfach alle Beiträge wieder einchecken. Sie können dieses Einchecken beliebig steuern und auch eine Zeitsperre aktivieren, die festlegt, wie lange ein Beitrag mindestens ausgecheckt sein sollte. Ist der Beitrag z.B. seit zwei Stunden offiziell in Bearbeitung und dies ist auf Ihrer speziellen Webseite völlig unwahrscheinlich, dann kann der Beitrag automatisch eingecheckt werden.

Joomla-Update-Mitteilung

Eine tolle Nachricht – es steht ein Update von Joomla bereit! Darüber sind wir immer froh, wollen aber nicht alle zwei Stunden daran erinnert werden. Die Joomla-Update-Mitteilung über den Task Scheduler können Sie so beliebig anpassen. Reicht Ihnen eine einzige Mail pro Woche, weil Sie gewissenhaft alle Updates gleich erledigen? Dann richten Sie die Aufgabe entsprechend ein.

Aufgaben anlegen und konfigurieren

So richten Sie eine Aufgabe ein:

  • Wählen Sie die Aufgabe aus, zum Beispiel Globales Freigeben.
  • Geben Sie der Aufgabe einen Titel, „Gesperrte Beiträge einchecken” wäre zum Beispiel sehr naheliegend, und stellen Sie ein, wie oft die Aufgabe ausgeführt werden soll. Wie wäre es mit einmal pro Stunde? Achten Sie immer darauf, dass die Ausführung der jeweiligen Aufgaben so häufig wie nötig und so selten wie möglich eingestellt wird.

Abbildung: Globales Freigeben

  • Je nach Aufgabe gibt es verschiedene „Aufgabenparameter”. Bei dieser Aufgabe kann man zum Beispiel einstellen, wie lange der Beitrag schon gesperrt sein muss, damit er automatisch entsperrt werden kann.

Das war’s fürs Erste schon. Unter „Erweitert” kann man noch festlegen, ob diese Aufgabe geloggt werden soll und was im Fehlerfall passiert.

Doch bevor die Aufgabe nun funktioniert, müssen Sie das Ganze in den Optionen noch aktivieren. Über Optionen (oben rechts) stellen Sie sicher, dass der „Lazy Zeitplaner” aktiviert ist. Dieser sorgt dafür, dass bei jedem Besuch der Webseite im festgelegten Intervall ein Auslöser an die geplanten Aufgaben geschickt wird. Ist dies hier deaktiviert, werden keine Aufgaben bearbeitet.

Abbildung: Lazy-Zeitplaner

Und im Reiter Web-Cron können Sie zusätzlich eine Adresse generieren, über die Sie den Cronjob extern triggern können. Damit würden Sie zum Beispiel eine Aufgabe, die ein Backup erstellt, auch triggern, wenn gerade niemand die Seite besucht. Wichtige Aufgaben sollten so ausgelöst werden. Hängen Sie dazu in Ihrem Cronjob Get Request einfach die ID des Cronjobs hinten an: z.B. &ID=3.

Ab Joomla 5.2 sollte man alle Aufgaben auf einmal triggern können, ohne dass das Anhängen der ID notwendig wäre, ein entsprechender Pull Request ist dafür schon vorbereitet.

Abbildung: Web-Cron

Als weitere Möglichkeit kann man Scheduled Tasks außerdem per CLI ansprechen. Die Befehle dafür lauten:

Abbildung: Scheduled Tasks per CLI ansprechen

Nützliche Aufgaben von Drittanbietern

Neben den nützlichen Aufgaben, die Joomla bereits zur Verfügung stellt, gibt es natürlich auch Drittanbieter-Erweiterungen, die einen tollen Job machen. Dazu gehören:

  • Das automatische Anstoßen von Backups (Akeeba Backup).
  • Ein Task Scheduler Plugin zum automatischen Zurücksetzen von Beitragsaufrufen.
  • Ein Task Scheduler Plugin zum Verschieben von Beiträgen je nach einem Kalenderfeld (Custom Field) – so können zum Beispiel kommende Events in die Kategorie abgelaufene Events verschoben werden.
  • Müll rausbringen: Der Papierkorb läuft voll? Mit diesem Plugin kann man ihn automatisch vor die Tür stellen.
  • User verwalten – diese Aufgabe hilft Ihnen, mit inaktiven Nutzern umzugehen. 
  • Erweiterungs-Update: Dieses Plugin prüft, ob Updates von Erweiterungen erhältlich sind, und schickt eine E-Mail, wenn dies der Fall ist. 

Auch wenn es den Task Scheduler schon einige Zeit gibt, findet man nicht allzu viele offizielle Task-Plugins. Es ist jedoch zu erwarten, dass die Zahl wachsen wird. 

Eigene Aufgaben programmieren

Besonders interessant ist die Möglichkeit, individuelle Plugins zu programmieren, um spezifische Aufgaben zu lösen. Dafür muss man ein klassisches Joomla-Plugin für die Gruppe Task mit folgendem Code erstellen:

Hier sind einige Ideen für Ihre eigenen Task-Plugins:

  1. Content-Synchronisation: Sie können Inhalte zwischen verschiedenen Bereichen Ihrer Webseite oder von anderen Webseiten synchronisieren.
  2. Automatische Bildoptimierung: Komprimiert und optimiert regelmäßig alle neuen Bilder auf Ihrer Webseite für bessere Ladezeiten. Dies bringt Joomla ja auch schon in einer Basisversion mit sich, kann aber noch auf eigene Wünsche angepasst werden.
  3. SEO-Checker: Überprüfen Sie Ihre Seite regelmäßig auf SEO-Kriterien und senden Sie einen Bericht mit Verbesserungsvorschlägen.
  4. Social Media Posts: Teilt automatisch neue Beiträge auf verschiedenen Social-Media-Plattformen.
  5. Preisüberwachung: Überwacht Preise von Konkurrenten und passt Ihre eigenen Preise entsprechend an (für E-Commerce-Seiten).
  6. Datenschutz-Compliance-Checker: Überprüft Ihre Webseite regelmäßig auf Einhaltung von Datenschutzrichtlinien und meldet potenzielle Probleme.
  7. Automatisierungsaufgaben: Beispielsweise im Zusammenspiel mit Plattformen wie Make oder Zapier, die es ermöglichen, verschiedene Apps und Dienste zu verbinden und automatisierte Workflows zu erstellen. Make und Zapier helfen dabei, repetitive Aufgaben zu automatisieren, ohne dass manuell eingegriffen werden muss. So können Sie z.B. neue Benutzer synchronisieren oder Social Media Posts automatisieren.

Fazit: Der Task Scheduler in Joomla

Mit diesen Ideen und dem mächtigen Task Scheduler von Joomla können Sie Ihre Webseite auf ein neues Level der Automatisierung und Effizienz heben. Experimentieren Sie mit den vorhandenen Plugins und überlegen Sie, welche individuellen Aufgaben Ihnen den Alltag erleichtern könnten. Der Task Scheduler ist ein unterschätztes Tool – nutzen Sie seine Kraft!

Der Autor:


COOLCAT creations bietet seit über 14 Jahren Dienstleistungen im Bereich Print- und Webdesign sowie Marketing an. Elisa war unter anderem Lead-Designerin des Joomla Marketingteams und Vize-Präsidentin bei Open Source Matters. Sie arbeitet seit 2006 mit Joomla und schreibt regelmäßig über Joomla-spezifische Themen wie Template-Entwicklung, Overrides sowie die Nutzung von Custom Fields und YOOtheme. Zusammen mit David Jardin veröffentlichte sie das Praxisbuch Joomla!3.