Konfigurieren von Cron-Aufträgen
Für mehrere Commerce-Funktionen ist mindestens ein Cron-Auftrag erforderlich, mit dem zukünftige Aktivitäten geplant werden. Eine teilweise Liste dieser Aktivitäten folgt:
- Katalogpreisregeln
- Newsletter
- Erstellen von Google Sitemaps
- Kundenwarnungen/Benachrichtigungen (Produktpreisänderung, Produkt wieder auf Lager)
- Neuindizierung
- Private Verkäufe (nur Adobe Commerce)
- Automatische Aktualisierung der Währungskurse
- Alle Commerce-E-Mails (einschließlich Bestellbestätigung und -transaktionen)
dev/tools/cron.sh
nicht mehr ausführen, da das Skript entfernt wurde.UNIX-Systeme planen Aufgaben, die von bestimmten Benutzern mit einer crontab ausgeführt werden sollen. Dies ist eine Datei, die Anweisungen für den Cron-Daemon enthält, der dem Daemon anweist, "diesen Befehl zu diesem Zeitpunkt an diesem Datum auszuführen". Jeder Benutzer verfügt über eine eigene Registerkarte und Befehle in jeder beliebigen Registerkarte werden als der Benutzer ausgeführt, dem die Registerkarte gehört.
Informationen zum Ausführen von cron in einem Webbrowser finden Sie unter Sichere cron.php für die Ausführung in einem Browser.
Erstellen oder Entfernen der Commerce-Registerkarte
In diesem Abschnitt wird beschrieben, wie Sie Ihre Commerce-Crontab (d. h. die Konfiguration für Commerce-Cron-Aufträge) erstellen oder entfernen.
Die crontab ist die Konfiguration, die zum Ausführen von Cron-Aufträgen verwendet wird.
Die Commerce-Anwendung verwendet Cron-Aufgaben, die mit verschiedenen Konfigurationen ausgeführt werden können. Die PHP-Befehlszeilenkonfiguration steuert den allgemeinen Cron-Auftrag, der Indexer neu indiziert, E-Mails generiert, die Sitemap generiert und so weiter.
- Um Probleme während der Installation und Aktualisierung zu vermeiden, empfehlen wir dringend, die gleichen PHP-Einstellungen sowohl auf die PHP-Befehlszeilenkonfiguration als auch auf die Konfiguration des PHP-Webserver-Plug-ins anzuwenden. Weitere Informationen finden Sie unter Erforderliche PHP-Einstellungen.
- In einem System mit mehreren Knoten kann crontab nur auf einem Knoten ausgeführt werden. Dies gilt nur für Sie, wenn Sie aus Gründen der Leistung oder Skalierbarkeit mehr als einen Webknoten einrichten.
Commerce-Registerkarte erstellen
Ab Version 2.2 erstellt Commerce eine Registerkarte mit der Kronen. Wir fügen die Commerce-Crontab zu jeder konfigurierten Registerkarte für das Commerce-Dateisysteminhaber hinzu. Wenn Sie also bereits Registerkarten für andere Erweiterungen oder Anwendungen eingerichtet haben, fügen wir die Commerce-Kronen hinzu.
Die Commerce-Crontab befindet sich in den Kommentaren #~ MAGENTO START
und #~ MAGENTO END
in Ihrer Crontab.
So erstellen Sie die Commerce-Registerkarte:
-
Melden Sie sich als Dateisysteminhaber an oder wechseln Sie zu ihm.
-
Wechseln Sie zum Installationsverzeichnis von Commerce.
-
Geben Sie den folgenden Befehl ein:
code language-bash bin/magento cron:install [--force]
Verwenden Sie --force
, um eine vorhandene Registerkarte neu zu schreiben.
magento cron:install
schreibt keine vorhandene Kronregisterkarte in#~ MAGENTO START
- und#~ MAGENTO END
-Kommentaren in Ihrer Kronregisterkarte um.magento cron:install --force
wirkt sich nicht auf Cron-Aufträge außerhalb der Commerce-Kommentare aus.
Um die Registerkarte "crontab"anzuzeigen, geben Sie den folgenden Befehl als Dateisysteminhaber ein:
crontab -l
Ein Beispiel:
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
update/cron.php
" wurde in Commerce 2.4.0 entfernt. Wenn diese Datei in Ihrer Installation vorhanden ist, kann sie sicher entfernt werden.update/cron.php
und bin/magento setup:cron:run
sollte ebenfalls aus der Registerkarte "Crontab"entfernt werden.Entfernen der Commerce-Registerkarte
Sie sollten die Commerce-Registerkarte nur entfernen, bevor Sie die Commerce-Anwendung deinstallieren.
So entfernen Sie die Commerce-Kronregisterkarte:
-
Melden Sie sich als an oder wechseln Sie zum Dateisysteminhaber.
-
Wechseln Sie zum Installationsordner von Commerce.
-
Geben Sie den folgenden Befehl ein:
code language-bash bin/magento cron:remove
#~ MAGENTO START
und #~ MAGENTO END
in Ihrer Crontab.Ausführen von cron über die Befehlszeile
Befehlsoptionen:
bin/magento cron:run [--group="<cron group name>"]
wobei --group
die auszuführende Cron-Gruppe angibt (diese Option zum Ausführen von Cron für alle Gruppen auslassen)
Geben Sie Folgendes ein, um den Indexierungscron-Auftrag auszuführen:
bin/magento cron:run --group index
Geben Sie Folgendes ein, um den standardmäßigen Cron-Auftrag auszuführen:
bin/magento cron:run --group default
Informationen zum Einrichten von benutzerdefinierten Cron-Aufträgen und -Gruppen finden Sie unter Konfigurieren von benutzerdefinierten Cron-Aufträgen und Cron-Gruppen.
scheduled_at
-Zeit erfolgen.Protokollierung
Alle cron
Auftragsinformationen wurden von system.log
in eine separate cron.log
verschoben.
Standardmäßig befinden sich die Cron-Informationen unter <install_directory>/var/log/cron.log
.
Alle Ausnahmen von Cron-Aufträgen werden von \Magento\Cron\Observer\ProcessCronQueueObserver::execute
protokolliert.
Zusätzlich zur Anmeldung in cron.log
:
-
Fehlgeschlagene Aufträge mit den Status
ERROR
undMISSED
werden bei der<install_directory>/var/log/support_report.log
protokolliert. -
Aufträge mit dem Status
ERROR
werden immer alsCRITICAL
in<install_directory>/var/log/exception.log
protokolliert. -
Aufträge mit dem Status
MISSED
werden alsINFO
im Verzeichnis<install_directory>/var/log/debug.log
protokolliert (nur Entwicklermodus).
cron_schedule
in der Commerce-Datenbank geschrieben. Die Tabelle enthält einen Verlauf der Cron-Aufträge, einschließlich:- Auftrags-ID und -Code
- Status
- Erstellungsdatum
- Geplantes Datum
- Ausgeführtes Datum
- Enddatum
SELECT * from cron_schedule;
ein.