我正在开发一个自定义 Magento 模块并为其设置一个 Cron 作业。 一切都工作正常,但我担心 Cron 作业的意外行为(随机执行数)。 当我手动执行 cron.php 时,它会调用我的模块的观察者方法超过 1 次(执行次数不固定,有时 3,有时 5 等)。
我只想执行一次观察者的方法。
这是我的代码。
1) 水仙花/Birthdaywish/etc/config.xml
... ... <crontab> <jobs> <daffodil_birthdaywish> <schedule> <cron_expr>* * * * * * <run> <model>birthdaywish/observe::sendBirthdayMail ...
2) Daffodil/Birthdaywish/Model/observe.php
Class Daffodil_Birthdaywish_Model_Observe { public function sendBirthdayMail() { echo "<h2>Hello"; } }
如果我执行 cron.php 预期输出应该是
你好
但目前的输出是有时间
你好你好
还有一些时间
你好你好你好你好
我只是想知道为什么观察者的方法执行了多次(随机次数)?
有什么方法可以将计划的 cron 的状态更改为“COMPLETE”,这样它就不会执行两次?
最佳答案
我认为这是因为你的 cron 计划:
<schedule> <cron_expr>* * * * * *
您指定 cron 应始终运行。 Magento 的 cron.php 只是收集所有 cron 作业的所有信息,并将它们安排在 Magento 数据库的 cron_schedule 表中。
应该一直调用 cron.php,它管理所有其他 cronjobs。
因此,例如,如果您将 cronjob 设置为每小时运行一次并定期调用 cron.php,那么它每小时只会运行一次。
你会这样做:
<schedule> <cron_expr>0 * * * *
因此它每小时 0 分钟(5 点、6 点等)运行。
也看看这里:http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job
关于Magento Cron Job 意外行为,就介绍到这里了,希望对你有所帮助!
相关知识
career=occupation=job等区别
Magento/Adobe commerce跨境电商出海指南!成本、功能、优劣势、案例
如何选择外贸网店系统,Magento、WooCommerce还是Open Cart?
Spring任务执行和调度(TaskExecutor,TaskSchedule)
抢劫坚果店 The Nut Job
Magento2主题 · Magento2实战 · 看云
儿童玩耍安全教育:预防意外伤害.docx
意外伤害 儿童健康安全最大隐患
白花蛇捕食行为与生态学研究
喜欢 = 熟悉 + 意外
网址: Magento Cron Job 意外行为 https://m.huajiangbk.com/newsview2113157.html
上一篇: 以编程的方式添加一个新的客户到M |
下一篇: 帐号不存在或尚未开通本业务急!有 |