Magento Cron作业错误 - 回调无效

时间:2013-07-12 11:10:19

标签: php xml magento

我有一些问题需要在Magentos cron系统中使用cron作业。

我的模块文件夹结构如下:

/app/code/local/Nnn/AbandonedCartEmails/etc/config.xml
/app/code/local/Nnn/AbandonedCartEmails/Model/Observer.php

我的配置xml如下:

<config> 

<!-- 
    The module's node contains basic 
    information about each Magento module
-->
<modules>
    <!--
        This must exactly match the namespace and module's folder
        names, with directory separators replaced by underscores
    -->
    <Nnn_AbandonedCartEmails>

        <!-- The version of our module, starting at 0.0.1 -->
        <version>0.0.1</version>

    </Nnn_AbandonedCartEmails>
</modules>

<global>
    <!-- Defining models -->
    <models>

        <!--
            Unique identifier in the model's node.
            By convention, we put the module's name in lowercase.
        -->
        <nnn_abandonedcartemails>

            <!--
                The path to our models directory, with directory
                separators replaced by underscores
            -->
            <class>Nnn_AbandonedCartEmails_Model</class>

        </nnn_abandonedcartemails>

    </models>
</global>

<crontab>
    <jobs>
        <nnn_abandonedcartemails>
            <schedule>
                <cron_expr>*/5 * * * *</cron_expr>
            </schedule>
            <run>
                <model>abandonedcartemails/observer::processEmails</model>
            </run>
        </nnn_abandonedcartemails>
    </jobs>
</crontab>

我的观察者课程看起来像这样:

class Nnn_AbandonedCartEmails_Model_Observer 
{
    public function processEmails()
    {

         /***/

因此cron作业正在注册并被添加到cron_schedule表中,但是每当它尝试执行它时都会产生错误

exception 'Mage_Core_Exception' with message 'Invalid callback: abandonedcartemails/observer::processEmails does not exist' in /pathtosite/www/app/Mage.php:594

所以看起来我有配置问题,但我似乎无法看到问题所在。 Magento的xml文件中的命名空间和命名约定使用起来非常令人沮丧,所以希望一副新鲜的眼睛可以看到我犯错的地方。

任何帮助总是受到赞赏。

谢谢

1 个答案:

答案 0 :(得分:5)

您的型号名称错误。

<model>标记中,写下<abandonedcartemails>而不是<nnn_abandonedcartemails>

你的模特没有打电话。这就是为什么这是错误