magento cron job和cron_scheduler表

Gas*_*per 6 php xml cron magento

我制作了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> 
Run Code Online (Sandbox Code Playgroud)

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

<cron_expr>*/1 * * * *</cron_expr>
Run Code Online (Sandbox Code Playgroud)

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

小智 7

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

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


Jim*_*ran 4

我的第一步是安装 Fabrizio Branca 的AOE Scheduler 扩展。Fabrizio 的扩展具有“列表视图”功能,可以显示当前在 Magento 的 cron 中注册的所有 Cron 作业,以及它们计划运行的时间。它还允许您立即在浏览器中运行 cron 作业(非常适合调试 cron 作业),或安排作业立即执行。

如果您的 cron 作业没有出现在 AOE Scheduler 的列表视图中,则 cron 作业的配置存在问题。尝试清除配置缓存以确保 Magento 能够解析您的 config.xml 以获取最新更改。我假设您的 XML 节点位于 XML 文档层次结构中的适当位置,即直接位于<config>节点下?

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

  • 您不需要安装完整的模块。您可以将 shell/scheduler.php 脚本复制到安装的 shell 文件夹中。然后在命令行中运行它,您将获得所有功能。 (3认同)