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 erstellen.
Adobe empfiehlt, crons
als Dateisysteminhaber auszuführen. Führen Sie nicht crons
als root
oder als Webserver-Benutzer aus.
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 Eigenschaft crons
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, der aufstart
undstop
ausgeführt werden soll.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 verfügt jedes Commerce-Cloud-Projekt in der Datei .magento.app.yaml
über die folgende standardmäßige crons
-Konfiguration:
crons:
cronrun:
spec: "* * * * *"
cmd: "php bin/magento cron:run"
Wenn für Ihr Projekt benutzerdefinierte Cron-Aufträge erforderlich sind, können Sie sie zur standardmäßigen crons
-Konfiguration hinzufügen. Siehe Erstellen eines Cron-Auftrags.
crontab
Adobe Commerce hat Pro-Projekten nur eine Konfigurationsoption für automatische Kronen hinzugefügt, um die Self-Service-Konfiguration crons
in den Staging- und Produktionsumgebungen zu unterstützen. Wenn diese Option aktiviert ist, können Sie crontab
verwenden, um die Cron-Konfiguration zu überprüfen. Dies ist nicht für Starter-Projekte verfügbar.
Sie können zwar crontab
verwenden, um die Konfiguration für Pro-Projekte zu überprüfen, Adobe Commerce verwendet jedoch nicht crontab
, um Cron-Aufträge für Sites auszuführen, die in der Cloud-Infrastruktur bereitgestellt werden.
Überprüfen der Cron-Konfiguration in Pro-Umgebungen:
-
Verwenden Sie SSH , um sich bei der Remote-Umgebung anzumelden.
-
Listen Sie die geplanten Cron-Prozesse auf.
code language-shell crontab -l
note note NOTE Wenn der Befehl crontab -l
einen Fehler vom TypCommand not found
zurückgibt (nur in den Staging- und Produktionsumgebungen von Pro), müssen Sie ein Adobe Commerce-Supportticket senden , um die Konfigurationsoption für die automatische Abspielfunktion in Ihrem Projekt zu aktivieren.
Das folgende Beispiel zeigt die Ausgabe crontab
für eine Umgebung, die nur über die standardmäßige crons
-Konfiguration verfügt:
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. Bei Starterumgebungen und Pro integration
-Umgebungen 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 Datei ".magento.app.yaml
"im Abschnitt "crons
"hinzu. Das allgemeine Format lautet für die Planung spec
und für die Angabe des auszuführenden Befehls oder benutzerdefinierten Skripts cmd
.
Spezifikation
Adobe Commerce verwendet einen Ausdruck mit fünf Werten für eine 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, 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.
.magento.app.yaml
angegebene crons
Zeit 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
Der 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 ist <path-to-php-binary>
/usr/bin/php
. Der Installationsordner, der die Projekt-ID enthält, ist /app/abc123edf890/bin/magento
und die Skriptaktion ist 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 zum Abschnitt "crons
"der Datei ".magento.app.yaml
"hinzufügen.
integration
-Umgebungen 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 muss die Funktion Auto-Crons Feature für Ihr Projekt aktiviert sein, bevor Sie benutzerdefinierte Cron-Aufträge über die Datei .magento.app.yaml
zu Staging- und Produktionsumgebungen hinzufügen können. Wenn diese Funktion nicht aktiviert ist, senden Sie ein Adobe Commerce-Support-Ticket, um automatische Kronen zu aktivieren.
Hinzufügen benutzerdefinierter Cron-Aufträge:
-
Bearbeiten Sie in Ihrer lokalen Entwicklungsumgebung die Datei "
.magento.app.yaml
"im Ordner "Adobe Commerce/app
". -
Fügen Sie im Abschnitt
crons
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 exportiert der Auftrag
productcatalog
den Produktkatalog alle acht Stunden, also 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 im Abschnitt "crons
"der Datei ".magento.app.yaml
". Testen Sie dann die Aktualisierungen in der Remote-Umgebung integration
, bevor Sie die Änderungen in die Staging- und Produktionsumgebungen verschieben.
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 den Befehl ece-tools
CLI cron:disable
verwenden, um alle Cron-Aufträge zu deaktivieren und alle aktiven Cron-Prozesse zu stoppen.
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
-Pakets verwendet. 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: