我在 Magento 版本中遇到了一个奇怪的 cron 问题。1.13.0.2。cron_schedule 表仅包含一行:

  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

但我缺少 Magento 核心和自定义扩展中的所有其他 crontab。我设置了 crontab,并且还尝试手动运行 cron.php。如果我手动运行它,“executed_at”和“finished_at”时间将被更新。

如果我查看 core_config_data 表并搜索“cron”,我只会看到 2 个 cron 相关数据集:

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> 

模块code/core/Mage/Cron已启用。进一步的日志记录已启用,但我没有看到任何与 cron 相关的问题 system.log 也不在 exception.log. 。服务器日志也为空。

有谁知道可能导致问题的原因或如何调试它?谢谢!

有帮助吗?

解决方案

如果“手动运行”意味着您在浏览器中访问了 cron.php,但表中仍然没有任何内容,那么该脚本可能很早就退出了。尝试打开 cron.php 并强制 $isShellDisabled 变量为真。(我面前没有打开代码。)

其他提示

您的 cron 可能实际上并未在服务器上设置。您必须从 SSH 或控制面板创建一个 cronjob 来调用 cron.sh 在您的站点根目录中(通常每隔 5 分钟一次)。这就是实际持续运行任务的原因。如果没有任何呼叫 cron.sh 或者 cron.php 持续进行,那么实际上什么都不会发生(正如您所注意到的)。

有关从 SSH 创建 cronjob 的说明,请参阅 williem wigman 的回答: https://magento.stackexchange.com/a/32580/1905

如果您使用托管控制面板而不是 SSH 来创建它,则该过程完全取决于您的特定控制面板的工作方式。一般来说,你希望它以5分钟的间隔运行一次(*/5 * * * *),并且你希望它执行 sh {your_path_to_magento}/cron.sh.

许可以下: CC-BY-SA归因
scroll top