Cron选项卡无法在自定义模块中工作

时间:2017-06-09 04:46:47

标签: php magento cron

我创建了自定义模块。我在其中创建了一个cron选项卡config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Test_Cron>
            <version>0.1.0</version>
        </Test_Cron>
    </modules>
    <frontend>
        <routers>
            <testcron>
                <use>standard</use>
                <args>
                    <module>Test_Cron</module>
                    <frontName>testcron</frontName>
                </args>
            </testcron>
        </routers>
    </frontend>
    <global>
        <helpers>
            <testcron>
                <class>Test_Cron_Helper</class>
            </testcron>
        </helpers>
        <models>
            <testcron>
                <class>Test_Cron_Model</class>
            </testcron>
        </models>
    </global>
    <crontab>
        <jobs>
            <testingCron>
                <schedule>
                    <cron_expr>*/5 * * * *</cron_expr>
                </schedule>
                <run>
                    <model>testcron/observer::stockManager</model>
                </run>
            </testingCron>
        </jobs>
    </crontab>
</config> 

这是我的观察员功能。

<?php

 class Test_Cron_Model_Observer {

    public function stockManager(){
 Mage::log("Cron executed on ".date('Y-m-d H:i:s'),null,"yngCron.log");
}
}
?>

我的magento系统日志已启用。 当我手动调用此方法时,它可以工作,但它不适用于cron

Mage::getModel('testcron/observer')->stockManager();

如果我遗失了某些内容,请帮助并告诉我

2 个答案:

答案 0 :(得分:1)

我已经审核了您的代码,这是正确的。如果您的cron没有被执行,那么您应该每5分钟执行一次cron.sh脚本。根文件夹中存在.cron.sh文件,并检查您的magento数据库中的cron_schedule表。您可以在其中检查您的cron调度

对于每5分钟执行一次cron.sh脚本,请参阅命令: - */5 * * * * /bin/sh /absolute/path/to/magento/cron.sh

答案 1 :(得分:0)

如果您的服务器上没有运行cron.sh,Abhinav的答案是正确的。但是,如果cron正在运行,它可能还有其他一些东西。确保刷新/清除缓存。此外,系统cron可能没有足够的权限来创建日志文件。检查cron_schedule数据库表以查看作业代码是否已排队。您可以通过执行cron.sh或cron.php手动排队作业。如果作业在此之后没有排队,那么它很可能是缓存或代码问题。