Wie stelle ich sicher, dass mein Magento-Cron-Job ausgeführt wird? Ich richte cron gemäß den Installationsanweisungen für Magento 2 für die Protokolldateien ein.
Siehe Screenshot (zum Vergrößern anklicken):
Ich verwende Magento CE 2.0.2
Serverplattform:
- Betriebssystem: CENTOS 7.2 x86_64
- CPU: Dual Intel (R) Xeon (R) CPU E5-2620 0 bei 2,00 GHz
- RAM: 256 GB
- Speicher: SSD-basierter Cloud-Speicher
- Netzwerk: 20 Gigabit
- Server-Benutzeroberfläche: cPanel / WHM 54.0 Build 18 (aktuell / stabil)
- Apache: 2.2.26
- MySQL: 5.6.29
- PHP: 5.6.18
Crontab für das cPanel-Benutzerhostkonto:
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento cron:run > /home/abcdefg/public_html/var/log/magento.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/update/cron.php > /home/abcdefg/public_html/var/log/update.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento setup:cron:run > /home/abcdefg/public_html/var/log/setup.cron.log&
Hinzugefügt am 05.05.2016
Ich wurde informiert, dass MySQL cron_schedule
Cron-Aktivität enthält. Also habe ich mir die Tabelle angesehen und diese Einträge gefunden. Hier ist ein Ausschnitt aus jedem der eindeutigen Einträge in dieser Tabelle, der den neuesten Eintrag zeigt.
55534 aggregate_sales_report_coupons_data running Class Magento\SalesRule\Crone\AggregateSalesReportCouponsData does not exist 2016-05-04 19:54:02 2016-05-04 20:00:00 NULL NULL
56093 captcha_delete_expired_images success NULL 2016-05-05 07:06:03 2016-05-05 07:10:00 2016-05-05 07:10:02 2016-05-05 07:10:02
56081 captcha_delete_old_attempts success NULL 2016-05-05 06:51:02 2016-05-05 07:00:00 2016-05-05 07:00:03 2016-05-05 07:00:03
56070 catalog_index_refresh_price success NULL 2016-05-05 06:51:02 2016-05-05 07:00:00 2016-05-05 07:00:03 2016-05-05 07:00:03
56094 magento_newrelicreporting_cron success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56092 newsletter_send_all success NULL 2016-05-05 07:06:03 2016-05-05 07:10:00 2016-05-05 07:10:02 2016-05-05 07:10:02
56071 sales_clean_orders success NULL 2016-05-05 06:51:02 2016-05-05 07:00:00 2016-05-05 07:00:03 2016-05-05 07:00:03
56084 sales_grid_order_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56087 sales_grid_order_creditmemo_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56085 sales_grid_order_invoice_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56086 sales_grid_order_shipment_async_insert success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56091 sales_send_order_creditmemo_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56088 sales_send_order_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56089 sales_send_order_invoice_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
56090 sales_send_order_shipment_emails success NULL 2016-05-05 07:06:03 2016-05-05 07:06:00 2016-05-05 07:07:03 2016-05-05 07:07:03
Wie kann ich außerdem die 3 Protokolldateikronen ausführen, die ich bei der Erstinstallation eingerichtet habe:
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento cron:run >> /home/abcdefg/public_html/var/log/magento.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/update/cron.php >> /home/abcdefg/public_html/var/log/update.cron.log&
*/1 * * * * /usr/local/bin/php -c /usr/local/lib/php.ini /home/abcdefg/public_html/bin/magento setup:cron:run >> /home/abcdefg/public_html/var/log/setup.cron.log&
Schließlich erinnere ich mich an ein paar Jahre zuvor, als ich eine Magento-Instanz für einen Client in Magento v1 installierte, dass der Seitenindex & Cache und der Produktindex & Cache irgendwie automatisch durch cron aktualisiert wurden. Wie kann ich Magento 2 dazu bringen, dasselbe zu tun? Jedes Mal, wenn ich mich im Adend-UI-Backend bei Magento 2 anmelde, muss ich den Cache neu indizieren und leeren, damit die Produkte meines Kunden auf der Website angezeigt werden können.
Test vom 05.05.2016 um 12:05 Uhr ET
(1) Ich habe die cron_schedule
Tabelle abgeschnitten . Nach 1 Minute ist hier der neue Tisch:
Hier ist die Tabelle, nachdem cron gelaufen ist:
Antworten:
Schneiden Sie die
cron_schedule
Tabelle ab und prüfen Sie, ob sie nach einigen Minuten wieder mit geplanten Aufgaben gefüllt wird.Rau, ich weiß, sollte dir aber eine Antwort geben. Vielleicht lohnt es sich auch, dies in einer Inszenierungsumgebung zu tun. zuerst.
Verwenden:
Nach einigen Minuten verwenden:
quelle
Geben Sie den Benutzer an, mit dem der Befehl ausgeführt wird. Verwenden Sie nicht root dafür, sondern nur den Magento-Benutzer. Zum Beispiel:
Beispiel von meinem Server (CENTOS 7), der gut funktioniert:
quelle
Scheint ab und zu mit meiner Vagrant-Maschine zu passieren. Ich erhielt den gleichen Hinweis. Alles, was ich tun musste, um ihn loszuwerden, war, Daten neu zu indizieren, indem ich:
quelle
Sie sollten drei Dinge überprüfen:
sudo service cron status
um zu überprüfen, ob der Dienst auf dem Server ausgeführt wirdls -la
und überprüfen Sie, ob Ihre Dateien Benutzer & Gruppe mit denen übereinstimmen, die Sie auf dem Cron konfiguriert habencrontab -u xxx -e
select * from cron_schedule
und überprüfen Sie, ob die Cron-Tabelle gefüllt ist.quelle
Folgendes ist nützlich:
wähle * aus cron_schedule;
Suchen Sie nach den Spalten "created_at", "execute_at" und "messeges", um hilfreiche Informationen zum Arbeiten oder Ausführen von Cron zu erhalten.
quelle
Gemäß den Magento Dev Docs ,
Alle Cron-Daten werden in die
cron_schedule
Tabelle im geschriebenMagento database
. Die Tabelle enthält eine Historie der Cron-Jobs, einschließlich:Um Datensätze in der Tabelle anzuzeigen, melden Sie sich in der Befehlszeile bei der Magento-Datenbank an und geben Sie ein
quelle
Öffnen Sie
cron.php
im Stammverzeichnis des Magento-Verzeichnisses und platzieren Sie:Überprüfen Sie diese Datei nach einiger Zeit und prüfen Sie, ob eine Protokolldatei unter generiert wurde oder nicht
var/log
. Wenn es generiert wird, läuft Ihr Cron.quelle