Cronjobs: Unterschied zwischen den Versionen
(→Für Entwickler) |
|||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 48: | Zeile 48: | ||
Dieser Cronjob ruft eine Liste von bekannten Proxy-IP-Adressen ab und speichert diese zwischen. Das ermöglicht es sourceDESK, Proxy-Nutzern bestimmte Funktionen der Webseite zu sperren, um Betrug vorzubeugen. | Dieser Cronjob ruft eine Liste von bekannten Proxy-IP-Adressen ab und speichert diese zwischen. Das ermöglicht es sourceDESK, Proxy-Nutzern bestimmte Funktionen der Webseite zu sperren, um Betrug vorzubeugen. | ||
+ | |||
+ | '''Server-Monitoring''' | ||
+ | |||
+ | Dieser Cronjob überwacht die Server im [[Monitoring]]. | ||
'''System-Status''' | '''System-Status''' | ||
Zeile 65: | Zeile 69: | ||
Dieser Cronjob aktualisiert die Kurse der [[Währungen]] automatisch, wenn dies aktiviert ist und die Währungs-Codes gültig sind. | Dieser Cronjob aktualisiert die Kurse der [[Währungen]] automatisch, wenn dies aktiviert ist und die Währungs-Codes gültig sind. | ||
− | == Einrichtung | + | == Cronjob-Einrichtung: URL == |
− | Sie | + | Die einfachste Variante der Cronjob-Ausführung ist der Aufruf über die Cronjob-URL. Diese finden Sie unter "Einstellungen > System-Einstellungen > Cronjobs", dort erhalten Sie auch das entsprechende Ausführungs-Intervall. |
+ | |||
+ | Die URL ist unter dem Webseite-Icon auffindbar, diese muss als Cronjob eingerichtet werden. | ||
+ | |||
+ | == Cronjob-Einrichtung: PHP-CLI == | ||
+ | Eine weitere Variante zur Ausführung der Cronjobs ist der Aufruf über die PHP-Kommandozeile. Dies ist die bevorzugte Variante. Unter "Einstellungen > System-Einstellungen > Cronjobs" finden Sie die verfügbaren Cronjobs samt Ausführungs-Intervalle. Am Ende einer jeden Zeile der Tabelle finden Sie die Cronjob-URL. In dieser befindet sich der Parameter "job", dieser enthält den Cronjob-Key (etwa ''recurring''). Den Email-Cronjob würden Sie wie folgt einrichten (crontab-Stil): | ||
+ | |||
+ | <source lang="bash"> | ||
+ | * * * * * /path/to/php /path/to/sourcedesk/index.php cron queue | ||
+ | </source> | ||
+ | |||
+ | == Cronjob-Einrichtung: Daemon == | ||
+ | Seit Version 1.1.1 reicht es aus, einen Daemon einzurichten, der die Cronjobs automatisch ausführt, wenn diese fällig sind. Alternativ können die Cronjobs auch weiterhin einzeln aufgerufen werden. Der Daemon erfordert das PHP-Modul ''pthreads''. Der Aufruf erfolgt in einer Shell mit: | ||
+ | |||
+ | <source lang="bash"> | ||
+ | nohup php /var/www/sourceDESK/index.php cron _all & | ||
+ | </source> | ||
+ | |||
+ | Hierbei ist der Pfad zu sourceDESK anzupassen, eventuell muss auch der Pfad für die PHP-Binary geändert werden. Eine Passwort-Authentifizierung ist nicht erforderlich. Der Daemon kann beispielsweise mit ''systemd'' verwaltet werden. Hierzu kann eine Datei ''/etc/systemd/system/sourcedesk.service'' mit folgendem Inhalt angelegt werden: | ||
+ | |||
+ | <source lang="vim"> | ||
+ | [Unit] | ||
+ | Description=sourceDESK Cronjob | ||
+ | Requires=mysqld.service | ||
+ | After=mysqld.service | ||
+ | |||
+ | [Service] | ||
+ | User=root | ||
+ | Type=simple | ||
+ | TimeoutSec=0 | ||
+ | PIDFile=/var/run/sourcedesk.pid | ||
+ | ExecStart=php -f /var/www/sourceDESK/index.php cron _all> /dev/null 2>/dev/null | ||
+ | KillMode=process | ||
+ | |||
+ | Restart=on-failure | ||
+ | RestartSec=30s | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=default.target | ||
+ | </source> | ||
+ | |||
+ | Die Datei - und jegliche Änderungen - müssen mit ''systemctl daemon-reload'' im System bekannt gemacht werden. | ||
+ | |||
+ | Der Dienst kann dann mit ''systemctl start sourcedesk'' gestartet werden. Um ihn beim Booten zu starten, muss ''systemctl enable sourcedesk'' ausgeführt werden. | ||
== Intervall == | == Intervall == |
Aktuelle Version vom 26. März 2020, 20:53 Uhr
Die Cronjobs sind dafür da, zu bestimmten Zeiten bzw. in einem bestimmten Intervall bestimmte Aufgaben auszuführen.
Inhaltsverzeichnis
Verwaltung der Cronjobs
Sie finden die Cronjob-Verwaltung unter "Einstellungen" > "Systemeinstellungen" > "Cronjobs". Dort können Sie einzelne Cronjobs aktivieren bzw. deaktivieren und ein Passwort setzen, falls dies zum Schutz des Cronjob-Aufrufes gewünscht ist (wird empfohlen). Außerdem wird Ihnen angezeigt, wann der Cronjob das letzte Mal aufgerufen wurde, welches Intervall für den Cronjob-Aufruf empfohlen wird und wie die URL lautet (letztes Icon).
Erklärung der Cronjobs
Abrechnungen
Dieser Cronjob erstellt Rechnungen bei Fälligkeit aktiver Abrechnungen.
Backups
Dieser Cronjob nimmt System-Backups vor.
Domain-Änderungen
Dieser Cronjob wendet offene Änderungen an Domains an.
Domain-Synchronisierung
Dieser Cronjob synchronisiert im System befindliche Domains mit den Daten beim Registrar.
Domain-Verlängerungen
Dieser Cronjob kümmert sich um Verlängerungen und Kündigungen von Domains und warnt den Kunden vor anstehenden Verlängerungen bzw. dem Ablauf seiner Domain.
E-Mailwarteschlange
Dieser Cronjob arbeitet die E-Mailwarteschlange ab.
Geburtstags-Glückwünsche
Dieser Cronjob versendet auf Wunsch Glückwünsche und einen Gutschein, wenn einer Ihrer Kunden Geburtstag hat.
IP-Lokalisierung
Dieser Cronjob versucht, IP-Adressen von Kunden zu lokalisieren. Das ermöglicht es Ihnen, direkt in der Administration zu sehen, woher ein Besucher kommt und dient der Betrugsprävention.
Mahnungen
Dieser Cronjob versendet Mahnungen für überfällige Rechnungen, siehe Mahnsystem.
Produkt-Einrichtungen
Dieser Cronjob richtet vom Kunden bestellte Produkte im Hintergrund ein.
Proxy-Adressen aktualisieren
Dieser Cronjob ruft eine Liste von bekannten Proxy-IP-Adressen ab und speichert diese zwischen. Das ermöglicht es sourceDESK, Proxy-Nutzern bestimmte Funktionen der Webseite zu sperren, um Betrug vorzubeugen.
Server-Monitoring
Dieser Cronjob überwacht die Server im Monitoring.
System-Status
Dieser Cronjob prüft das System auf Fehler, wie zum Beispiel nicht existente Dateien.
Ticket-Import (POP)
Dieser Cronjob importiert neue E-Mails in das Support-System. Dafür ist das mailparse-Modul für PHP zwingend erforderlich.
Überweisungs-Import
Dieser Cronjob versucht Überweisungen von Ihrer Bank zu importieren, sofern der automatische Import aktiviert ist.
Währungs-Kurse
Dieser Cronjob aktualisiert die Kurse der Währungen automatisch, wenn dies aktiviert ist und die Währungs-Codes gültig sind.
Cronjob-Einrichtung: URL
Die einfachste Variante der Cronjob-Ausführung ist der Aufruf über die Cronjob-URL. Diese finden Sie unter "Einstellungen > System-Einstellungen > Cronjobs", dort erhalten Sie auch das entsprechende Ausführungs-Intervall.
Die URL ist unter dem Webseite-Icon auffindbar, diese muss als Cronjob eingerichtet werden.
Cronjob-Einrichtung: PHP-CLI
Eine weitere Variante zur Ausführung der Cronjobs ist der Aufruf über die PHP-Kommandozeile. Dies ist die bevorzugte Variante. Unter "Einstellungen > System-Einstellungen > Cronjobs" finden Sie die verfügbaren Cronjobs samt Ausführungs-Intervalle. Am Ende einer jeden Zeile der Tabelle finden Sie die Cronjob-URL. In dieser befindet sich der Parameter "job", dieser enthält den Cronjob-Key (etwa recurring). Den Email-Cronjob würden Sie wie folgt einrichten (crontab-Stil):
* * * * * /path/to/php /path/to/sourcedesk/index.php cron queue
Cronjob-Einrichtung: Daemon
Seit Version 1.1.1 reicht es aus, einen Daemon einzurichten, der die Cronjobs automatisch ausführt, wenn diese fällig sind. Alternativ können die Cronjobs auch weiterhin einzeln aufgerufen werden. Der Daemon erfordert das PHP-Modul pthreads. Der Aufruf erfolgt in einer Shell mit:
nohup php /var/www/sourceDESK/index.php cron _all &
Hierbei ist der Pfad zu sourceDESK anzupassen, eventuell muss auch der Pfad für die PHP-Binary geändert werden. Eine Passwort-Authentifizierung ist nicht erforderlich. Der Daemon kann beispielsweise mit systemd verwaltet werden. Hierzu kann eine Datei /etc/systemd/system/sourcedesk.service mit folgendem Inhalt angelegt werden:
[Unit] Description=sourceDESK Cronjob Requires=mysqld.service After=mysqld.service [Service] User=root Type=simple TimeoutSec=0 PIDFile=/var/run/sourcedesk.pid ExecStart=php -f /var/www/sourceDESK/index.php cron _all> /dev/null 2>/dev/null KillMode=process Restart=on-failure RestartSec=30s [Install] WantedBy=default.target
Die Datei - und jegliche Änderungen - müssen mit systemctl daemon-reload im System bekannt gemacht werden.
Der Dienst kann dann mit systemctl start sourcedesk gestartet werden. Um ihn beim Booten zu starten, muss systemctl enable sourcedesk ausgeführt werden.
Intervall
Wie bereits erwähnt wird das Intervall bei den Cronjobs angezeigt. Dieses Intervall sollte nicht unterschritten werden, es gibt auch nur eine 10-prozentige Toleranz. Das bedeutet, dass ein Cronjob, der alle 60 Minuten laufen soll, zwar auch alle 54 Minuten aufgerufen werden kann, ein geringeres Intervall wird aber nicht möglich sein - der Cronlauf wird direkt abgebrochen.
Für Entwickler
Die Cronjobs finden sich in der Datenbanktabelle cronjobs (eventuell mit Präfix). Dort können Sie neue Cronjobs hinzufügen oder das Intervall verändern - tun Sie dies aber bitte nur, wenn Sie wissen was Sie tun. Jeder Cronjob hat dort unter anderem ein Merkmal key. Das ist der GET-Parameter job beim Aufruf eines Cronjobs. Außerdem muss eine Datei key.php im Verzeichnis controller/crons existieren. Die einfachere Variante dürfte aber sein, weitere Aktionen im Anschluss an einen bestehenden Cronjob durchzuführen, hierzu können Sie den Hook Hook:Cronjob verwenden.