我遇到了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>
我在管理面板中尝试了不同的时间设置。现在有:
P.S。 Magento ver。 1.7.0.1
更新
我把每小时工作(0 * / 1 * * *)留了一天,它实际上运行了:
答案 0 :(得分:4)
我弄清楚出了什么问题。这是设置(系统/配置/系统/ Cron)。 当我将“Schedule Ahead for”设置为60 时,它开始正常工作(每小时和每天的时间表)。 现在,当我需要在16:00执行时,数据库中的时间表出现在15:20。
设定:
如果遇到同样的问题,您应该注意前两个设置:“生成每个时间表”和“提前安排”
答案 1 :(得分:1)
对于0分钟(00:00,01:00; 02:00等)的每小时,您必须输入:
<cron_expr>0 * * * *</cron_expr>
答案 2 :(得分: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
答案 3 :(得分:1)
我知道这是旧的,但它可能仍然相关,因为我遇到了类似的东西。您的cron.sh多久安排在您的服务器上运行。如果调度程序设置为每60分钟并且它在小时(下午12点,下午1点,下午2点......等)运行,并且您的预定提前时间设置为20分钟(默认情况下我认为),并且您的magento cron表达式是,例如,30 * * * *,或半小时的每小时,你的工作永远不会运行。你的cron.sh只会提前20分钟设置magento cron作业,因此12:30作业将无法安排,但由于magento的cron.sh设置为按小时运行,它将永远不会被安排。我怀疑你原来的问题是类似的,因为调整magento cron应该安排的时间之前的“预定前进”时间修复了这样的问题。还有一些值得关注的东西。