3

我对 Magento cron 表达式有疑问。几分钟就可以正常工作:

    <crontab>
    <jobs>
        <namespace_module_cron>
            <schedule>
                <cron_expr>*/15 * * * *</cron_expr>
            </schedule>
            <run>
                <model>namespace_module/observer::myMethod</model>
            </run>
        </namespace_module_cron>
    </jobs>
</crontab>

但是当我设置时间时它不起作用:

<cron_expr>0 1 * * *</cron_expr>

或者

<cron_expr>0 */1 * * *</cron_expr>

我在管理面板中尝试了不同的时间设置。目前有:

  • 15
  • 1
  • 60
  • 120
  • 120
  • 3000

PS Magento 版本。1.7.0.1

更新

我离开每小时的工作(0 */1 * * *)一天,它实际上运行:

  • 14:15
  • 16:15
  • 21:15
  • 22:15
  • 03:15
  • 04:15
4

4 回答 4

4

我已经弄清楚出了什么问题。它是设置(系统/配置/系统/Cron)。当我将“提前计划”设置为 60时,它开始正常工作(每小时和每天的时间表)。现在数据库中的计划出现在 15:20,而我需要在 16:00 执行它。

设置:

  • 生成时间表每:15
  • 提前安排:60
  • 如果未在范围内运行则错过:60
  • 历史清理每:120
  • 成功历史终身:120
  • 故障历史寿命:3000

如果你有同样的问题,你应该注意前两个设置:“Generate Schedules Every”和“Schedule Ahead for”

于 2012-10-29T15:21:20.893 回答
1

对于 0 分钟的每个小时(00:00、01:00;02:00 等),您必须输入:

<cron_expr>0 * * * *</cron_expr>
于 2012-10-24T12:22:25.873 回答
1

我已经这样定义了玉米工作。03 16 * * *

当您的 cron.php 在 16:02 点运行时,它将仅在数据库表 cron_schedule 中创建有关此 cron 作业的条目,并且不会运行 cron 作业。要运行这个 cron 作业,我需要运行 cron.php 两次,这意味着在表中创建一个条目后,您应该在 15 分钟内运行 cron,否则该条目将被忽略。因此,要运行 cron 作业,您应该定期运行 cron.php。

我的 cron 作业每天 16:03 运行,每隔 10 分钟运行一次 cron.php

于 2012-10-25T13:16:45.963 回答
1

我知道这是旧的,但它可能仍然是相关的,因为我遇到了类似的事情。您的 cron.sh 计划在您的服务器上运行的频率。如果调度程序设置为每 60 分钟一次并且每小时运行一次(中午 12 点、下午 1 点、下午 2 点...等),并且您的预定提前时间设置为 20 分钟(我认为默认设置),并且您的 magento cron 表达式是,例如, 30 * * * *, 或每隔半小时,你的工作将永远不会运行。您的 cron.sh 最多只能提前 20 分钟设置 magento cron 作业,因此 12:30 的作业不会被安排,但由于 magento 的 cron.sh 设置为按小时运行,它永远不会被安排。我怀疑你原来的问题是类似的,因为调整“提前计划”的时间超过了应该安排 magento cron 的时间来解决这样的问题。只是需要注意的事情。

于 2013-09-04T18:24:02.000 回答