Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Konsole, Cronjobs und Hintergrundarbeit

Wie in Exponential Arbeit außerhalb einer Webanfrage läuft - die Konsole und ihre Befehlserkennung, eZScript, Cronjob-Teile, die runcronjobs.php ausführt, Inhaltsjobs für große Inhaltsoperationen, die Job-Warteschlange…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/software-engineers/console-cron-and-background-work.md

On this page

This page is a translation. Read the English original

Konsole, Cronjobs und Hintergrundarbeit

Diese Seite richtet sich an Ingenieure, die Arbeit entwerfen, die nicht innerhalb einer Webanfrage laufen soll: Importe, Bereinigungen, E-Mails, Indexierung, große Inhaltsoperationen. Exponential hat dafür drei Mechanismen, plus die Konsole, die sie alle ausführt.

Inhalt

  1. Die Konsole
  2. Cronjob-Teile
  3. Inhaltsjobs
  4. Die Job-Warteschlange: expqueue
  5. Was Sie verwenden
  6. Regeln

Die Konsole

bin/php/console ist ein Einstiegspunkt für jeden Befehl (Installationen legen meist eine Abkürzung ./console im Hauptverzeichnis an). Sie erkennt Befehle zur Laufzeit:

QuelleBefehlsname
bin/php/<name>.phpexp:<name> (plus Namen, die mit @alias im Docblock deklariert sind, etwa exp:help)
bin/shell/<name>.shshell:<name>
extension/<ext>/bin/php/<name>ext:<ext>:<name>
ein Cronjob-Teilcron:<part>

Der Code eines Kernel-Befehls ist eine Klasse Exponential\Runnable\Command in kernel/private/classes/commands/; die Datei in bin/php/ ist ein einzeiliger Einstiegspunkt. Skripte starten über eZScript, nicht über ezpKernelWeb. Referenz: Exponential Console; für Autoren Konsolenbefehle.

php bin/php/console list              # every command
php bin/php/console list cron         # cronjob parts
php bin/php/console help exp:preload  # the help of one command

Cronjob-Teile

runcronjobs.php führt die in settings/cronjob.ini konfigurierten Teile aus: [CronjobSettings] Scripts[] für den Standardteil und [CronjobPart-<name>] Scripts[] für benannte Teile wie frequent und infrequent. Der Code eines Teils ist eine Klasse Exponential\Runnable\CronjobPart in kernel/private/classes/cronjobs/.

php runcronjobs.php frequent

Die Gruppe frequent ist auf jeder Installation wichtig: Sie enthält unter anderem den Teil audit, der den Audit-Trail indexiert, ausliefert, Warnregeln auswertet und rotiert (Der Audit-Trail). Cronjobs lassen sich in Konsole und Administration auflisten, ausführen und pausieren (Cronjob-Konsole, Cronjobs pausieren).

Inhaltsjobs

Große Entfernungs-, Kopier- und Verschiebevorgänge, Paketinstallationen und Audit-Exporte laufen als Inhaltsjobs: Die Anfrage reiht den Job ein und kehrt zurück, und die Arbeit läuft in Stapeln im Hintergrund weiter (Inhaltsjobs, Funktionsseite Inhaltsjobs).

Die Job-Warteschlange: expqueue

expqueue ist eine datenbankgestützte Job-Warteschlange für Erweiterungen, ab 6.0.15 von composer.json verlangt und inaktiv, bis sie aktiviert wird. Erzeuger reihen einen Job mit einem Aufruf ein; Worker führen ihn auf der Kommandozeile, über Cron oder als systemd-Dienst aus, nie innerhalb einer Webanfrage. Sie bietet Prioritätsklassen, Wiederholungen mit Backoff, eine Dead-Letter-Ablage, Idempotenzschlüssel und Leases mit einem Aufräumer (expqueue: die Job-Warteschlange, Warteschlangen mit expqueue).

Was Sie verwenden

BedarfVerwenden Sie
Regelmäßige Wartung (Bereinigung, Sammel-E-Mails, Index-Aktualisierungen)einen Cronjob-Teil
Eine große Inhaltsoperation, die ein Redakteur starteteinen Inhaltsjob
Arbeit, die Ihr Code einreiht, mit Wiederholungen und Prioritätenexpqueue
Eine Betriebsaufgabe, von Hand oder aus einem Bereitstellungsskript ausgeführteinen Konsolenbefehl

Regeln

  • Ein Cronjob-Teil muss gefahrlos zweimal laufen und unterbrochen werden können.
  • Ein Befehl muss seinen --help-Text und seine Exit-Codes stabil halten, weil Skripte und Cron davon abhängen, und sollte --dry-run anbieten, wenn er Daten ändert.
  • Gemeinsame Logik gehört in eine Dienstklasse, die Views, Befehle und Teile alle aufrufen (Muster für Hintergrundarbeit).
  • Langlaufende Worker sehen eine Klassenänderung erst nach ihrem Neustart, wie die Worker von Velocity.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x