首页 文章

magento cron job和cron_scheduler表

提问于
浏览
6

我制作了magento模块,用于在csv文件中导出产品 . 现在我想每天23.55运行cronjob . 我设置了config.xml,因为它是在magento cronjob wiki中编写的 .

我的代码:

<crontab>
        <jobs>
            <gcompany_runprofilescronjob>
                <schedule>
                    <cron_expr>55 23 * * *</cron_expr>
                </schedule>
                <run>
                    <model>export/export_csv::runprofilescronjob</model>
                </run>
            </gcompany_runprofilescronjob>
        </jobs>
    </crontab>

我还在服务器上设置了cronjob . 当cronjob运行时,magento中的所有cronjobs都存储在数据库表cron_schedule中,但不存储在我的gcompany_runprofilescronjob中 . 如果我设置不同的间隔,例如:

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

我的cronjob写在数据库中,但每分钟执行一次,我不想要......我希望我的功能每天都在23.55执行 . 我有什么建议我做错了吗?

2 回答

  • 4

    虽然这是一个非常古老的问题,但没有找到正确的答案,所以让我把它留给下一个人 .

    Magento的 cron_schedule 表只填充了计划在不久的将来运行的cron作业 . 你没有在表中看到你的cron工作的原因是因为它每天只运行一次,恰好是23:55 . Magento将在23:45左右将此cron作业添加到 cron_schedule 表中,具体取决于您在 System > Configuration > System > Cron 中的服务器cron作业配置和Magento的cron作业设置 . 记下 Generate Schedules EverySchedule Ahead for 设置,它们定义了Magento生成计划的频率和范围 .

  • 7

    我的第一步是安装Fabrizio Branca的AOE Scheduler extension . Fabrizio 's extension has a 2664719 feature that will show you all of the Cron jobs currently registered with Magento' s cron,当他们计划运行时 . 它还允许您立即在浏览器中运行cron作业(非常适合调试cron作业),或安排作业立即执行 .

    如果您的cron作业没有't appear in AOE Scheduler'的列表视图,那么's an issue with the configuration of the cron job. Try clearing the config cache to make sure Magento will parse your config.xml for the latest changes. I assume your XML node is in the appropriate place in the XML document'的层次结构,即直接位于 <config> 节点下?

    如果您的cron作业出现在列表视图中但仍未运行,请使用“生成计划”功能重新生成cron计划表 . 还可以尝试使用AOE Scheduler的“立即运行”功能手动运行您的cron作业,以检查错误或异常 .

相关问题