Skip to content

Latest commit

 

History

History
125 lines (72 loc) · 5.16 KB

cronjobs.md

File metadata and controls

125 lines (72 loc) · 5.16 KB

Cronjobs

Zweck des Cronjob-AddOns

Cronjobs dienen der regelmäßigen automatisierten Ausführung von Programmcode. Das Cronjobs-AddOn ist Bestandteil der REDAXO-Basisinstallation, muss jedoch bei Bedarf separat installiert werden.

Beispiele für die Verwendung:

  • Regelmäßige Datenbank-Tabellenoptimierung
  • Zeitgesteuertes Veröffentlichen von Artikeln
  • routinemäßige Aufgaben wie Datenbank-Backups

Im Add-on lassen sich dann beliebig viele Einträge erstellen, die gemäß den Einstellungen jedes Eintrages abgearbeitet werden.

Einstellungen eines Cronjobs

Name

Zunächst gibt man den Namen eines Eintrags ein. Dies kann beispielsweise RSS Feed lesen oder Monatliches Backup sein.

Beschreibung

Eine aussagekräftige Beschreibung vervollständigt den informativen Teil des Eintrages.

Umgebung

Im Feld Umgebung kann man ein oder mehrere Ereignisse wählen, bei denen der Cronjob ausgeführt wird.

  • Frontend
  • Backend
  • Skript (empfohlen, benöitgt Server-Cron)

Sobald ein eingestelltes Intervall erreicht ist, wartet das AddOn auf das eingestellte Ereignis: einen Seitenaufruf im Frontend, auf eine Aktion durch einen Nutzer im Backend oder den Aufruf der Skriptumgebung. Tritt das eingestellte Ereignis ein, wird der Cronjob ausgeführt.

Obwohl alle drei Einträge gleichzeitig aktiviert werden können, sollte man die Umgebung Skript nicht gleichzeitig mit Frontend oder Backend auswählen - von Testzwecken einmal abgesehen.

Somit können Cronjobs ausgelöst werden durch:

  • Einen Seitenaufruf im Frontend
  • Einen Seitenaufruf im Backend
  • Einen direkten Aufruf der Cronjob-Skriptumgebung durch den Server

Bei der Ausführung in der Umgebung Frontend und Backend läuft der Cronjob in der Session des jeweiligen Users, sodass dort auch ein Zugriff auf die Session möglich ist. Nur die Umgebung Skript erlaubt die Ausführung des Cronjobs unabhängig von einem Aufruf von REDAXO im Frontend oder im Backend. Der Aufruf des Skripts erfolgt durch .../redaxo/bin/console cronjob:run, also z.B. /home/users/12345/www/redaxo/bin/console cronjob:run

Nur in der Umgebung Backend ist es möglich, den Cronjob manuell in den Einstellungen des AddOns zu starten.

Empfehlungen

Die empfohlene Umgebung ist Skript, hierbei wird der Cronjob über einen serverseitigen Cronjob aufgerufen.

Sollte die Ausführung als Cronjob nicht möglich sein (z.B.: aufgrund mangelnder Rechte auf dem Server), stehen die alternativen Umgebungen Frontend und Backend zur Verfügung.

Bei Skript findet die Ausführung über den Cronjob des Betriebssystems statt (z.B. crontab -e) und ist unabhängig von den Seitenaufrufen in REDAXO. Zum Aufruf muss redaxo/bin/console cronjob:run aufgerufen werden. Das Intervall zwischen den Server-Cronjobs muss kleiner oder gleich sein, als das kleinste Intervall im REDAXO-Cronjob.

Wir empfehlen, den Aufruf serverseitig in möglichst kurzem Intervallen durchzuführen, das Cronjob-Addon regelt dann die tatsächliche Ausführung.

Frontend und Backend werden ausgeführt, wenn im Frontend und / oder Backend Seitenaufrufe erfolgen. Dies hat u.U. zur Folge, dass die Cronjobs ggf. später ausgeführt werden, als erwünscht. (z.B. bei regelmäßigen Backups, E-Mail-Benachrichtigungen)

Ausführung

Wenn eines der Ereignisse Frontend oder Backend eintritt, so kann der Cronjob seinen Dienst zu Beginn des Aufrufs erledigen oder am Ende. Nur in Ausnahmefällen sollte die Einstellung Beginn gewählt werden, da sie den jeweiligen Aufruf verzögert. Das fällt natürlich weniger ins Gewicht, wenn die Ausführung am Ende geschieht.

Status

Im Feld Status kann ein Cronjob deaktiviert werden. Standard ist aktiviert.

Typ

Im Feld Typ bestehen die Auswahlmöglichkeiten:

  • PHP-Code
  • PHP-Callback
  • URL-Aufruf

AddOns können dort weitere Einträge hinzufügen.

Beispielsweise:

  • Datenbankexport (durch das AddOn Backup)
  • Search it: Reindexieren (durch das AddOn Search it)

Je nach Einstellung im Feld Typ stehen unterschiedliche Eingabemöglichkeiten im Bereich Typspezifische Parameter zur Verfügung. So kann bei der Einstellung PHP-Code kompletter PHP-Code eingegeben werden, bei der Einstellung PHP-Callback lediglich ein Aufruf.

AddOns können eigene, typspezifische Parameter zur Verfügung stellen.

Intervall

Die Standardeinstellung für den Bereich Intervall ist die tägliche Ausführung, jeweils beim nächsten Aufruf der Umgebung nach 0:00 Uhr.

Neue Typen durch AddOns definieren

AddOns können eigene Ausführungstypen definieren. Dies wird beispielsweise im System AddOn Backup verwendet, um automatisierte Backups auszuführen.