Fügt dem OXID-Backend einen Cronjob-Manager ein.
composer require florianpalme/oxid-cronjobmanager
Bevor Cronjobs mittels des OXID Cronjob Managers verwendet werden können, muss ein normaler Crontab eingerichtet werden. Dabei ist darauf zu achten, dass der Aufruf jeder Minute durchgeführt wird.
Kann der Linux Crontab auf dem Server bearbeitet werden (crontab -e
), kann folgende Zeile eingefügt werden.
* * * * * php /pfad/zum/oxidshop/bin/cron.php
Ist es dir nicht möglich, den Crontab über die Linux-Konsole einzurichten, wende dich an deinen Hoster, welcher dir weiterhelfen kann. Dabei muss die Datei bin/cron.php
im OXID-Root-Verzeichnis mittels php ausgeführt werden.
Unter Service -> Cronjob Manager findest du alle von Modulen bereitgestellten Cronjobs.
In der Liste oben findest du folgende Informationen:
Spalte | Beschreibung |
---|---|
S | Status des Cronjobs |
Modul | Name des Moduls, zu welchem der Cronjob gehört |
Cronjob-Name | Name des Cronjobs, vergeben vom Modul |
Crontab | Ausführungs-Intervall |
Letzte Ausführung | Datum und Status der letzten Ausführung des Cronjobs |
Nach dem Klick auf einen Cronjob lassen sich folgende Informationen bearbeiten:
Wert | Beschreibung |
---|---|
Aktiv | Cronjob ist Aktiv und wird ausgeführt |
Pausiert | Die Ausführung wurde pausiert |
Abgebrochen | Die Ausführung wurde automatisch pausiert, da das Modul nicht mehr Aktiv ist oder die Cronjob-Funktion nicht vorhanden ist |
Beschreibt den Ausführungs-Intervall des Cronjobs im Linux Crontab Format
Hier findest du eine kurze Übersicht über die Anzahl der Ausführung, die durchschnittliche Ausführungszeit und die Anzahl der Fehlgeschlagenen Cronjobs.
In der ausgegebenen Liste werden Status, Start- & Endzeit, Ausführungszeit und ggf. eine Fehlermeldung ausgegeben.
Als Modul-Entwickler ersparst du dir durch den Cronjob Manager das schreiben eigener Cronjob-Funktionen, wie Prüfungen, ob er nun ausgeführt werden darf oder nicht.
Füge deinen Cronjob als Methode in der \OxidEsales\Eshop\Application\Model\Maintenance-Klasse hinzu.
Schlägt dein Cronjob aus irgendwelchen Gründen fehl, so kannst du eine Instanz von FlorianPalme\OXIDCronjobManager\Core\Exception\Exception werfen. Diese wird abgefangen und die hinterlegte Message in den Log geschrieben.
Das $aModule
-Array in der metadata.php wird um ein Array cronjobs
wie folgt erweitert.
$aModule = [
/** Cronjobs */
'cronjobs' => [
'moduleid_cronjobid' => [
'fnc' => 'doMyJob',
'title' => [
'de' => 'My Job',
],
'crontab' => '* * * * *',
],
],
];
Für jeden im cronjobs-Array enthaltenen Cronjob muss eine eindeutige ID vergeben werden. Empfohlen wird MODULID_CRONJOBID.
Name der Methode für diesen Cronjob in der oxMaintenance-Klasse.
Titel des Cronjobs als String oder Array für mehrere Sprachen.
Empfohlene Crontab-Einstellung für diesen Cronjob.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
2.1.1 - 2018-02-23
- #1 fix template paths for case-sensitive operating systems
2.1.0 - 2018-02-20
- Integration in die DebugBar
- Liste im Admin wurde nicht mehr dargestellt, ist das Modul zu einem Cronjob nicht mehr vorhanden
2.0.0 - 2018-02-05
- Upgrade auf OXID 6