Cron Package - Dokumentation für Entwickler
Cron = Task, Aufgabe, Cron
Durch das Cron Paket kann jedes QUIQQER Paket eigene Crons zur Verfügung stellen. Definieren Sie Im Hauptordner eines Pakets eine cron.xml. In dieser cron.xml können Sie die Eigenschaft des Crons definieren.
cron.xml
<?xml version="1.0" encoding="UTF-8"?>
<crons>
<cron exec="CLASS::method">
<title>Titel des Cron</title>
<description>Beschreibung des Cron</description>
<!-- optional -->
<params>
<param name="project" type="string"/>
<param name="lang" type="string" data-qui="my/param/Control">
<locale group="vendor/package" var="cron.param.lang"/>
</param>
</params>
<!-- optional -->
<autocreate>
<scope>projects</scope>
<interval>0 * * * *</interval>
<active>1</active>
<params>
<param name="project">[projectName]</param>
<param name="lang">[projectLang]</param>
</params>
</autocreate>
</cron>
</crons>
- <crons> beginnt das Cron-XML
- <cron> Fängt eine Cron definition an
- <title> Definiert den Titel des Crons
- <description> Definiert die Beschreibung des Crons
<cron exec="">
Ein <cron> Node legt die Struktur eines neuen Cron fest der im System bereit gestellt wird. Über <titel> und <description> können Sie den Cron beschreiben. Diese Beschreibung wird in der Administration angezeigt.
exec=""
Über das exec Attribute bestimmen Sie welche PHP Methode einer Klasse ausgeführt wird.
Folgender Ausdruck würde den QUIQQER Cache leeren.
exec="\QUI\Cron\QuiqqerCrons::clearCache"
Der ausgefürten PHP Methode werden zwei Parameter übergeben.
params_ und _CronManager
$params = Eingestellte Parameter des Crons. Parameter welche im Backend dem Cron zugewiesen wurden. $CronManager = Cron Manager Objekt
Beispiel einer PHP Methode
static function realeaseDate($params, $CronManager)
{
if ( !isset( $params['project'] ) ) {
throw new \QUI\Exception( 'Need a project parameter to search release dates' );
}
if ( !isset( $params['lang'] ) ) {
throw new \QUI\Exception( 'Need a lang parameter to search release dates' );
}
Project = \QUI::getProject( $params['project'], $params['lang'] );
/// mach was
}
<params>
In params
können festgelegte Parameter für den Cron definiert werden. Parameter können im der Cron-Administration für jeden Cron-Eintrag einen individuell Wert erhalten. So kann derselbe Cron auch mehrmals mit unterschiedlichen Parametern eingerichtet werden.
<param>
-Attribute
-
name - Interner Bezeichner des Attributs; wird auch in der Oberfläche so bezeichnet; wird in der aufgerufenen Cron-Method im
$params
-Parameter mit konkretem Wert zur Verfügung gestellt. - data-qui (optional) - Lädt ein QUIQQER JavaScript-Control über das Eingabe-Input für den Parameter-Wert. So sind komplexere Eingaben für Parameter-Werte möglich (z.B. spezielle Auswahllisten, Mehr-Sprachen-Inputs etcg.gg).
(Optional) Parameter-Beschreibung
Das <param>
-Attribute kann optional ein <locale>
-Attribute beinhalten (s. Beispiel oben). Damit kann in einer Sprachvaribable eine Kurzbeschreibung eines Parameters mitgegeben werden, welche bei Festlegung des Parameters in der Cron-Administration angezeigt wird.
<autocreate>
Über das <autocreate>
-Tag kann festgelegt werden, dass ein Cron automatisch vom System angelegt wird, wenn das entsprechende Paket installiert wird.
<interval>
(Pflichtfeld)
Gibt an, in welchem Intervall ein Cron ausgeführt wird.
Unterstützt wird hier die offizielle crontab Syntax (siehe z.B. https://www.stetic.com/developer/cronjob-linux-tutorial-und-crontab-syntax).
Beispiel: <interval>0 * * * *</interval>
-> Jede Stunde bei Minute 0
<active>
(optional)
Gibt an, ob der Cron nach dem Anlegen aktiviert oder deaktiviert sein soll.
Standard: aktiv
Beispiel: <active>0</active>
-> Cron wird angelegt, aber deaktiviert
<params>
(optional)
Legt die konkreten Parameter-Werte fest, mit denen der Cron automatisch angelegt wird.
Angegeben werden können hier alle Parameter, die in der <cron>
-Ebene im Abschnitt <params>
festgelegt wurden.
Beispiel:
<params>
<param name="key">value</param>
</params>
Der Cron wird mit dem Parameter key
und dem Wert value
angelegt.
<scope>
(optional)
Crons können für bestimmte Geltungsbereiche angelegt werden. Je nach Geltungsbereich stehen verschiedene Platzhalter in den Parametern (<params>
; s.o.) zur Verfügung. Zusätzlich werden je nach Geltungsbereich u.U. auch mehrere Crons gleichzeitig angelegt.
Aktuell unterstützte Werte:
-
projects
-> Der Cron wird für alle Projekte (+ ggf. alle Projekt-Sprachen) im System angelegt und zusätzlich, wenn ein neues Projekt erstellt wird.- Verfügbare Parameter-Platzhalter:
-
[projectName]
- Der (interne) Name des jeweiligen Projekts -
[projectLang]
- Das Sprachkürzel des Projekts (z.B.:de
)
-
- Verfügbare Parameter-Platzhalter:
<autocreate>
-Einträge
Mehrere Es können auch mehrere <autocreate>
-Blöcke pro Cron angegeben werden. Jeder Block wird eingenständig geparst.
So können z.B. mehrere Crons mit unterschiedlichen Parametern automatisiert angelegt werden.