Cron funktioniert nicht richtig.Cron_schedule-Tabelle enthält nur eine Zeile (enterprise_refresh_index)
-
13-12-2019 - |
Frage
Ich habe ein seltsames Cron-Problem in der Magento-Version.1.13.0.2.Die Tabelle cron_schedule enthält nur eine Zeile:
1 | enterprise_refresh_index | success | NULL | 2015-08-13 22:37:00 | 2015-08-13 22:37:00 | 2015-08-17 19:29:01 | 2015-08-17 19:29:01
Aber mir fehlen alle anderen Crontabs aus dem Magento-Kern und den benutzerdefinierten Erweiterungen.Ich habe Crontab eingerichtet und auch versucht, cron.php manuell auszuführen.Wenn ich es manuell ausführe, werden die Uhrzeiten „executed_at“ und „finished_at“ aktualisiert.
Wenn ich in die Tabelle „core_config_data“ schaue und nach „cron“ suche, sehe ich nur zwei Cron-bezogene Datensätze:
mysql> select * from core_config_data where value like "%cron%";
+-----------+---------+----------+------------------------------------------------+------------------------------------------------+
| config_id | scope | scope_id | path | value |
+-----------+---------+----------+------------------------------------------------+------------------------------------------------+
| 131 | default | 0 | catalog/productalert_cron/error_email_template | catalog_productalert_cron_error_email_template |
| 937 | default | 0 | crontab/jobs/log_clean/run/model | log/cron::logClean |
+-----------+---------+----------+------------------------------------------------+------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
Das Modul code/core/Mage/Cron ist aktiviert.Die weitere Protokollierung ist aktiviert, aber ich sehe keine Cron-bezogenen Probleme system.log
noch in exception.log
.Auch Serverprotokolle sind leer.
Hat jemand eine Idee, was das Problem verursachen könnte oder wie man es beheben kann?Danke!
Lösung
Wenn Sie mit „manuell ausführen“ meinen, dass Sie cron.php in Ihrem Browser aufgerufen haben und immer noch nichts in der Tabelle vorhanden ist, wird das Skript wahrscheinlich sehr früh beendet.Versuchen Sie, cron.php zu öffnen und das zu erzwingen $isShellDisabled
Variable auf wahr.(Ich habe den Code nicht vor mir geöffnet.)
Andere Tipps
Ihr Cron ist wahrscheinlich nicht wirklich auf dem Server eingerichtet.Sie müssen über SSH oder Ihr Control Panel einen Cronjob erstellen, um ihn aufzurufen cron.sh
im Stammverzeichnis Ihrer Website (normalerweise in 5-Minuten-Intervallen).Das ist es, was die Aufgaben tatsächlich fortlaufend ausführt.Wenn nichts anruft cron.sh
oder cron.php
auf Dauer, dann passiert eigentlich nichts (wie Sie bemerkt haben).
Eine Erklärung zum Erstellen des Cronjobs über SSH finden Sie in der Antwort von Williem Wigman hier: https://magento.stackexchange.com/a/32580/1905
Wenn Sie zum Erstellen ein Hosting-Control Panel anstelle von SSH verwenden, hängt der Vorgang vollständig davon ab, wie Ihr jeweiliges Control Panel funktioniert.Im Allgemeinen möchten Sie, dass es in einem 5-Minuten-Intervall (*/5 * * * *) ausgeführt wird sh {your_path_to_magento}/cron.sh
.