我正在处理一个自定义的Magento模块并为它设置一个Cron作业。 每件事情都很好,但我担心Cron任务的意外行为(随机数执行)。 当我手动执行cron.php时,它会调用我的模块的观察者方法多于1次(执行次数不固定,有时候3次,某次5等)。
我只想执行观察者的方法一次。
这是我的代码。
Magento Cron工作意外行为
1)水仙/ Birthdaywish的/ etc/config.xml中
...
...
<crontab>
<jobs>
<daffodil_birthdaywish>
<schedule>
<cron_expr>* * * * * *</cron_expr>
</schedule>
<run>
<model>birthdaywish/observe::sendBirthdayMail</model>
</run>
</daffodil_birthdaywish>
</jobs>
</crontab>
...
2)水仙/ Birthdaywish /型号/ observe.php
Class Daffodil_Birthdaywish_Model_Observe {
public function sendBirthdayMail() {
echo "<h1>Hello</h1>";
}
}
如果我执行的cron。 php的预期输出应该是
你好
但电流输出一段时间
你好你好你好
和一段时间
你好你好你好你好你好
我只是想知道为什么观察者的方法执行的次数(随机数时间)?
有没有办法将计划cron的状态更改为“完成”,因此它不会执行两次?
我认为这个解决方案将起作用。因为当你的cron表达式是 * * * * * * 这意味着每秒钟都会运行。这取决于您的服务器正在运行。 –