Crons-Eigenschaft
Adobe Commerce verwendet die crons
-Eigenschaft, um sich wiederholende Aktivitäten zu planen. Es ist ideal, eine bestimmte Aufgabe zu bestimmten Tageszeiten zu planen. Aufgrund der Art schreibgeschützter Umgebungen kann für Adobe Commerce jeweils nur ein Cron-Auftrag für Cloud-Infrastrukturprojekte auf der Webinstanz ausgeführt werden. Es empfiehlt sich, langwierige Aufgaben in kleinere Aufgaben in der Warteschlange zu unterteilen. Alternativ können Sie eine Worker-Instanz.
Adobe empfiehlt, dass Sie crons
als Dateisysteminhaber. Do not run crons
as root
oder als Webserver-Benutzer.
Diese Konfiguration unterscheidet sich von lokalen Implementierungen von Adobe Commerce, die mehrere standardmäßige Cron-Aufträge haben. Siehe Konfigurieren von Cron-Aufträgen im Konfigurationshandbuch.
Einrichten von Cron-Aufträgen
Die crons
-Eigenschaft beschreibt Prozesse, die nach einem Zeitplan ausgelöst werden. Jeder Auftrag erfordert einen Namen und die folgenden Optionen:
spec
—Der für die Planung verwendete Cron-Ausdruck.cmd
—Der Befehl, auf dem ausgeführt werden sollstart
undstop
.shutdown_timeout
—(Optional) Wenn ein Cron-Auftrag abgebrochen wird, ist dies die Anzahl der Sekunden, nach denen ein SIGKILL-Signal gesendet wird, um den Auftrag oder Prozess zu stoppen. Der Standardwert beträgt 10 Sekunden.timeout
—(Optional) Die maximale Zeit, die ein Cron-Auftrag vor der Zeitüberschreitung ausgeführt werden kann. Die Standardeinstellung ist der maximal zulässige Wert von 86400 Sekunden (24 Stunden).
Standardmäßig hat jedes Commerce-Cloud-Projekt die folgende Standardeinstellung crons
Konfiguration in der .magento.app.yaml
Datei:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Wenn für Ihr Projekt benutzerdefinierte Cron-Aufträge erforderlich sind, können Sie sie zum Standard hinzufügen crons
Konfiguration. Siehe Cron-Auftrag erstellen.
crontab
Adobe Commerce hat Pro-Projekten nur eine Konfigurationsoption für automatische Kronen hinzugefügt, um die Selbstbedienung zu unterstützen crons
Konfiguration in den Staging- und Produktionsumgebungen. Wenn diese Option aktiviert ist, können Sie crontab
, um die Cron-Konfiguration zu überprüfen. Dies ist not verfügbar mit Starter-Projekten.
Sie können crontab
zur Überprüfung der Konfiguration für Pro-Projekte verwendet Adobe Commerce nicht crontab
zum Ausführen von Cron-Aufträgen für Sites, die in der Cloud-Infrastruktur bereitgestellt werden.
Überprüfen der Cron-Konfiguration in Pro-Umgebungen:
-
Verwendung SSH , um sich bei der Remote-Umgebung anzumelden.
-
Listen Sie die geplanten Cron-Prozesse auf.
code language-shell crontab -l
note note NOTE Wenn die Variable crontab -l
gibt einenCommand not found
-Fehler (nur in Pro Staging- und Produktionsumgebungen), müssen Sie Senden eines Adobe Commerce-Support-Tickets , um die Konfigurationsoption "Auto-Crons-Self-Service"für Ihr Projekt zu aktivieren.
Das folgende Beispiel zeigt die crontab
Ausgabe für eine Umgebung, die nur über die Standardeinstellung verfügt crons
Konfiguration:
username@hostname:~$ crontab -l
# Crontab is managed by the system, attempts to edit it directly will fail.
SHELL=/etc/platform/6fck2obu3244c/cron-run
MAILTO=""
# m h dom mon dow job_name
* * * * * cronrun
Cron-Auftrag erstellen
Ein Cron-Auftrag umfasst die Zeitplan- und Zeitspezifikation sowie den Befehl, der zur geplanten Zeit ausgeführt werden soll. Für Starterumgebungen und Pro integration
-Umgebungen entspricht, beträgt das Mindestintervall einmal pro fünf Minuten. Für Pro-Staging- und Produktionsumgebungen beträgt das Mindestintervall einmal pro Minute. In Adobe Commerce in der Cloud-Infrastruktur fügen Sie benutzerdefinierte Cron-Aufträge zur .magento.app.yaml
in der Datei crons
Abschnitt. Das allgemeine Format lautet spec
für die Planung und cmd
, um den auszuführenden Befehl oder das benutzerdefinierte Skript anzugeben.
Spezifikation
Adobe Commerce verwendet einen Ausdruck mit fünf Werten für einen crons
Spezifikation (Spezifikation): * * * * *
- Minute (0 bis 59) Für alle Starter- und Pro-Umgebungen beträgt die Mindestfrequenz, die für Cron-Aufträge unterstützt wird, fünf Minuten. Möglicherweise müssen Sie die Einstellungen in Ihrem Admin konfigurieren.
- Stunde (0 bis 23)
- Tag des Monats (1 bis 31)
- Monat (1 bis 12)
- Wochentag (0 bis 6) (Sonntag bis Samstag; 7 ist auf einigen Systemen auch Sonntag)
Beispiele:
00 */3 * * *
wird alle drei Stunden in der ersten Minute ausgeführt (12:00 Uhr, 3:00 Uhr, 6:00 Uhr)20 */8 * * *
wird alle 8 Stunden bei Minute 20 ausgeführt (12:20 Uhr, 8:20 Uhr, 16:20 Uhr)00 00 * * *
läuft einmal am Tag um Mitternacht00 * * * 1
läuft einmal pro Woche am Montag um Mitternacht.
crons
die in der .magento.app.yaml
-Datei basiert auf der Zeitzone des Servers und nicht auf der Zeitzone, die in den Speicherkonfigurationswerten in der Datenbank angegeben ist.Berücksichtigen Sie bei der Festlegung der Planung die Zeit, die zum Abschließen der Aufgabe benötigt wird. Wenn Sie z. B. alle drei Stunden einen Auftrag ausführen und die Aufgabe 40 Minuten dauert, können Sie die geplante Zeit ändern.
Befehl
Die cmd
gibt den auszuführenden Befehl oder das benutzerdefinierte Skript an. Das Befehlsskriptformat kann Folgendes enthalten:
<path-to-php-binary> <project-dir>/<script-command>
Beispiel:
crons:
spec: "00 */8 * * *"
cmd: "/usr/bin/php /app/abc123edf890/bin/magento export:start catalog_category_product"
In diesem Beispiel <path-to-php-binary>
is /usr/bin/php
. Das Installationsverzeichnis, das die Projekt-ID enthält, lautet /app/abc123edf890/bin/magento
und die Skriptaktion lautet export:start catalog_category_product
.
Hinzufügen benutzerdefinierter Cron-Aufträge zu Ihrem Projekt
Auf der Adobe Commerce-Plattform für Cloud-Infrastruktur können Sie Anpassungen zur crons
Abschnitt .magento.app.yaml
-Datei.
integration
-Umgebungen entspricht, beträgt das Mindestintervall einmal pro fünf Minuten. Für Pro-Staging- und Produktionsumgebungen beträgt das Mindestintervall einmal pro Minute. Es ist nicht möglich, häufigere Intervalle als die Standardmindestwerte zu konfigurieren.Bei Adobe Commerce Pro-Projekten wird die Funktion "Auto-Crons" muss für Ihr Projekt aktiviert sein, bevor Sie benutzerdefinierte Cron-Aufträge zu Staging- und Produktionsumgebungen hinzufügen können, indem Sie die .magento.app.yaml
-Datei. Wenn diese Funktion nicht aktiviert ist, Senden eines Adobe Commerce-Support-Tickets , um Autocrons zu aktivieren.
Hinzufügen benutzerdefinierter Cron-Aufträge:
-
Bearbeiten Sie in Ihrer lokalen Entwicklungsumgebung das
.magento.app.yaml
in der Adobe Commerce/app
Verzeichnis. -
Im
crons
hinzufügen, fügen Sie Ihre Anpassung im folgenden Format hinzu:code language-yaml crons: <cron_name_1>: spec: "<schedule_time>" cmd: "<schedule_command>" <cron_name_2>: spec: "<schedule_time>" cmd: "<schedule_command>"
Im folgenden Beispiel wird die
productcatalog
-Auftrag exportiert den Produktkatalog alle acht Stunden, 20 Minuten nach der Stunde.code language-yaml crons: magento: spec: '* * * * *' cmd: 'php bin/magento cron:run' productcatalog: spec: '20 */8 * * *' cmd: 'bin/magento export:start catalog_product_category'
-
Hinzufügen, Übertragen und Push-Code-Änderungen.
code language-bash git add .magento.app.yaml && git commit -m "cron config updates" && git push origin <branch-name>
Cron-Aufträge aktualisieren
Um einen benutzerdefinierten Auftrag hinzuzufügen, zu entfernen oder zu aktualisieren, ändern Sie die Konfiguration in der crons
Abschnitt .magento.app.yaml
-Datei. Testen Sie dann die Updates auf der Remote-Seite. integration
Umgebung vor dem Übertragen der Änderungen in die Staging- und Produktionsumgebungen.
Deaktivieren von Cron-Aufträgen
Sie können Cron-Aufträge manuell deaktivieren, bevor Sie Wartungsaufgaben wie die Neuindizierung oder die Cache-Bereinigung durchführen, um Leistungsprobleme zu vermeiden. Sie können die ece-tools
CLI, Befehl cron:disable
um alle Cron-Aufträge zu deaktivieren und alle aktiven Cron-Prozesse zu beenden.
So deaktivieren Sie Cron-Aufträge:
-
Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.
-
Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden.
code language-bash magento-cloud ssh
-
Deaktivieren Sie Cron-Aufträge und stoppen Sie aktive Cron-Prozesse.
code language-shell ./vendor/bin/ece-tools cron:disable
-
Nachdem Sie alle erforderlichen Wartungsaufgaben ausgeführt haben, stellen Sie sicher, dass Sie die Cron-Aufträge erneut aktivieren.
code language-shell ./vendor/bin/ece-tools cron:enable
Fehlerbehebung bei Cron-Aufträgen
Adobe hat das Adobe Commerce-Paket zur Cloud-Infrastruktur aktualisiert, um die Cron-Verarbeitung auf der Adobe Commerce-Cloud-Infrastrukturplattform zu optimieren und Kron-bezogene Probleme zu beheben. Wenn Probleme mit der Cron-Verarbeitung auftreten, stellen Sie sicher, dass Ihr Projekt die neueste Version des ece-tools
Paket. Siehe ECE-Tools aktualisieren.
Sie können die Informationen zur Cron-Verarbeitung in den Protokolldateien auf Anwendungsebene für jede Umgebung überprüfen. Siehe Anwendungsprotokolle.
In den folgenden Adobe Commerce-Supportartikeln finden Sie Hilfe zur Fehlerbehebung bei Problemen mit Cron-Angriffen: