Cron: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Zeile 1: | Zeile 1: | ||
− | {{ | + | {{Hinweis|Anleitung wird gerade von mir erstellt! Bitte nichts dran ändern!}} |
Automatisierung von Batch Programmen mittels Zeitsteuerung | Automatisierung von Batch Programmen mittels Zeitsteuerung | ||
* Automatische zeitgesteuerte Ausführung von PHP Skripten. | * Automatische zeitgesteuerte Ausführung von PHP Skripten. | ||
Zeile 40: | Zeile 40: | ||
Ein Update erfolgt identisch der Installation.<br /><br /> | Ein Update erfolgt identisch der Installation.<br /><br /> | ||
{{Achtung|Beim Update von Contao 2 auf Contao 3 muss die Erweiterung vollständig deinstalliert/gelöscht werden, da Contao 3 intern die Tabelle tl_cron nutzt, die bisher die Erweiterung Cron nutzte.}} | {{Achtung|Beim Update von Contao 2 auf Contao 3 muss die Erweiterung vollständig deinstalliert/gelöscht werden, da Contao 3 intern die Tabelle tl_cron nutzt, die bisher die Erweiterung Cron nutzte.}} | ||
− | Für die Profis: Deinstallation ohne Löschung der Tabelle tl_cron, diese umbenennen nach tl_crontab, dann Update nach Contao 3 und die neue Version von Cron für Contao 3 installieren. So sollten die eingerichteten | + | Für die Profis: Deinstallation ohne Löschung der Tabelle tl_cron, diese umbenennen nach tl_crontab, dann Update nach Contao 3 und die neue Version von Cron für Contao 3 installieren. So sollten die eingerichteten Cronjobs erhalten bleiben. |
=Auslösen des Schedulers= | =Auslösen des Schedulers= | ||
Zeile 46: | Zeile 46: | ||
Standardmäßig wird der Scheduler bei jeder Backend Seitenaktualisierung ausgelöst. | Standardmäßig wird der Scheduler bei jeder Backend Seitenaktualisierung ausgelöst. | ||
− | Über ein Frontend Modul, welches aber keine Ausgabe erzeugt und somit das Layout nicht stört, ist die Auslösung auch über Seitenaufrufe des Frontends möglich. Darin wird mittels einem Image-Tag die Cron Auslösung vorgenommen. Das Image wird jedoch erst zum Browser gesendet, wenn der | + | Über ein Frontend Modul, welches aber keine Ausgabe erzeugt und somit das Layout nicht stört, ist die Auslösung auch über Seitenaufrufe des Frontends möglich. Darin wird mittels einem Image-Tag die Cron Auslösung vorgenommen. Das Image wird jedoch erst zum Browser gesendet, wenn der Cronjob erledigt ist. Bei Jobs die längere Zeit benötigen ist diese Art der Auslösung ungeeignet. |
In einer der nächsten Versionen wird es dazu eine Verbesserung geben, entweder auf die Art und Weise wie der Contao interne Frontend-Cron funktioniert oder als Job für diesen. Evaluierung erfolgt demnächst dazu. | In einer der nächsten Versionen wird es dazu eine Verbesserung geben, entweder auf die Art und Weise wie der Contao interne Frontend-Cron funktioniert oder als Job für diesen. Evaluierung erfolgt demnächst dazu. | ||
==Luxus Lösung mit realem Cron== | ==Luxus Lösung mit realem Cron== | ||
− | Hat man einen Server zur Verfügung in dem | + | Hat man einen Server zur Verfügung in dem Cronjobs eingerichtet werden können, kann man diesen System Cron nutzen um die Cron Erweiterung darüber auszulösen. |
− | Der Vorteil ist, dass der | + | Der Vorteil ist, dass der Cronjob genau zur geplanten Zeit gestartet wird, auch wenn niemand auf die Website zugreift. Auch bei seiten mir sehr hohe Traffic, wird diese Art der Auslösung die Webserver Last etwas senken. (im Vergleich zur FE-Modul Auslösung) |
Folgende Zeile in die crontab eingtragen, vorher anpassen mit der eigenen Domain natürlich. | Folgende Zeile in die crontab eingtragen, vorher anpassen mit der eigenen Domain natürlich. | ||
Zeile 58: | Zeile 58: | ||
</source> | </source> | ||
+ | =Cronjobs definieren= | ||
+ | Backend - System - Scheduler | ||
+ | (Infos folgen) | ||
+ | |||
+ | ==Entwicklung benutzerdefinierter Cronjobs== | ||
+ | (Infos folgen) | ||
+ | ==Allgemeine Überlegungen== | ||
+ | (Infos folgen) | ||
+ | ==Erstellen eines Cronjob Scriptes== | ||
+ | (Infos folgen) | ||
+ | ===Das globale Array $cronJob=== | ||
+ | (Infos folgen) | ||
+ | ===Beispiel Script=== | ||
+ | (Infos folgen) | ||
Version vom 23. Februar 2013, 00:28 Uhr
Automatisierung von Batch Programmen mittels Zeitsteuerung
- Automatische zeitgesteuerte Ausführung von PHP Skripten.
- Zeitsteuerungs-Syntax von UNIX cron/crontab.
- Benötigt kein “richtiges” cron, kann parasitär bei Seitenaufrufen ausgeführt werden.
- Alternatives Anstossen mittels “echtem” cron möglich.
Erweiterungs-Übersicht | |
---|---|
Name des Entwicklers | Glen Langer (BugBuster) |
Entwickler Webseite | http://www.contao.glen-langer.de |
Version der Erweiterung | 3.0.0 |
Kompatibilität mit Contao Version | ab 3.0 |
Kompatibilität mit TYPOlight Version | 2.7.0 - 2.9.5 (siehe Installationshinweise) |
Link zum Extension Repository | https://contao.org/de/extension-list/view/cron.de.html |
Den Entwickler unterstützen | http://www.amazon.de/wishlist/26HHEJOU03G76 |
Link zum Tracker | https://github.com/BugBuster1701/contao-cron/issues |
Link zum VCS | https://github.com/BugBuster1701/contao-cron |
Anmerkung | Version für Contao 3.0 verfügbar |
Inhaltsverzeichnis
Vorwort
Die Erweiterung Cron stammt ursprünglich von Peter Koch (acenes) und wurde von mir übernommen mit dem Ziel, diese für Contao 3 kompatibel zu machen. Die Beschreibung hier bezieht sich nur auf die Cron Version ab 3.0.0 für Contao 3.
Forum
Fragen zur Cron Erweiterung werden im Forum beantwortet: Forum - Sonstige-Erweiterungen
Fehler und Wünsche können im Tracking System gemeldet werden.
Installation
Installation erfolgt über das Extension Repository im Backend der Contao Installation.
Eine manuelle Installation ist möglich, dazu die ZIP Datei vom Extension Repository laden, entpacken und entsprechend übertragen.
Danach wie dabei üblich /contao/install.php aufrufen um ein eventuelles Update der Datenbank durchführen.
Hinweis für ältere TYPOlight Versionen
Nutzer von TYPOlight 2.9/2.8/2.7 nutzen bitte Cron Version 1.1.0 (Direktlink)
Installation als Update
Ein Update erfolgt identisch der Installation.
Achtung: Beim Update von Contao 2 auf Contao 3 muss die Erweiterung vollständig deinstalliert/gelöscht werden, da Contao 3 intern die Tabelle tl_cron nutzt, die bisher die Erweiterung Cron nutzte. |
Für die Profis: Deinstallation ohne Löschung der Tabelle tl_cron, diese umbenennen nach tl_crontab, dann Update nach Contao 3 und die neue Version von Cron für Contao 3 installieren. So sollten die eingerichteten Cronjobs erhalten bleiben.
Auslösen des Schedulers
Grundlegende Lösung
Standardmäßig wird der Scheduler bei jeder Backend Seitenaktualisierung ausgelöst.
Über ein Frontend Modul, welches aber keine Ausgabe erzeugt und somit das Layout nicht stört, ist die Auslösung auch über Seitenaufrufe des Frontends möglich. Darin wird mittels einem Image-Tag die Cron Auslösung vorgenommen. Das Image wird jedoch erst zum Browser gesendet, wenn der Cronjob erledigt ist. Bei Jobs die längere Zeit benötigen ist diese Art der Auslösung ungeeignet. In einer der nächsten Versionen wird es dazu eine Verbesserung geben, entweder auf die Art und Weise wie der Contao interne Frontend-Cron funktioniert oder als Job für diesen. Evaluierung erfolgt demnächst dazu.
Luxus Lösung mit realem Cron
Hat man einen Server zur Verfügung in dem Cronjobs eingerichtet werden können, kann man diesen System Cron nutzen um die Cron Erweiterung darüber auszulösen. Der Vorteil ist, dass der Cronjob genau zur geplanten Zeit gestartet wird, auch wenn niemand auf die Website zugreift. Auch bei seiten mir sehr hohe Traffic, wird diese Art der Auslösung die Webserver Last etwas senken. (im Vergleich zur FE-Modul Auslösung)
Folgende Zeile in die crontab eingtragen, vorher anpassen mit der eigenen Domain natürlich.
* * * * * wget -t 1 -O - http://www.example.com/system/modules/cron/public/CronController.php >/dev/null 2>&1
Cronjobs definieren
Backend - System - Scheduler (Infos folgen)
Entwicklung benutzerdefinierter Cronjobs
(Infos folgen)
Allgemeine Überlegungen
(Infos folgen)
Erstellen eines Cronjob Scriptes
(Infos folgen)
Das globale Array $cronJob
(Infos folgen)
Beispiel Script
(Infos folgen)
--BugBuster 00:48, 22. Feb. 2013 (CET)