给定:在Config.xml中具有正确配置的cronjob(假设,每5分钟)的扩展 . 此外,系统cron设置为运行Magento的cron.sh.安装扩展后,cronjob必须运行几次,当它没有更多要处理的数据时,它就会变得过时 .
问题:处理完所有数据后不需要该作业 . 但是,它在Config.xml中的设置会使它永远每5分钟运行一次,只是为了检查没有更多的数据而死掉 .
问题:是否有任何正确的方法(可能使用cron_schedule表...)当它看到没有更多数据时,以编程方式从其自己的PHP中“解散”cronjob?还是其他任何方式?使用cron是因为不应中断扩展安装过程 . 也许有可能以某种其他方式安排一些PHP代码而不是cron(但在Magento中)?考虑线程,但由于无法保证此功能将被内置,这似乎不是选项....
提前致谢!
1 回答
所以,我找到了两个可能的解决方案:1)似乎可以通过core_config_data表创建/删除crontabs而不使用config.xml; 2)在处理完所有数据后从config.xml中删除crontab节点清理缓存删除所有挂起的任务 . 我已经设法实现了第二个,并且它有效(我知道第一种方法要好得多,但我没有时间去挖掘它) .
第二个看起来像: