首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Magento模块中设置cron作业?

如何在Magento模块中设置cron作业?
EN

Stack Overflow用户
提问于 2012-06-26 15:20:44
回答 5查看 32.8K关注 0票数 17

我想在我的模块中设置一个cron作业。我按照Magento wiki - how_to_setup_a_cron_job上的说明操作,但我的cron作业根本没有执行。

这是我的config.xml (app/code/local/Roomstory/Invoice/etc/config.xml)

代码语言:javascript
复制
<?xml version="1.0"?>
<config>    
    <modules>
        <Roomstory_Invoice>
            <version>0.1.1</version>
        </Roomstory_Invoice>
    </modules>
<!-- -->
    <crontab>
        <jobs>
            <roomstoryinvoice_setstatus>
                <schedule><cron_expr>*/10 * * * *</cron_expr></schedule>
                <run><model>roomstory_invoice/setstatus::run</model></run>
            </roomstoryinvoice_setstatus>
        </jobs>
    </crontab>
</config>

这是我的班级。(app/code/local/Roomstory/Invoice/Model/Setstatus.php)

代码语言:javascript
复制
<?php
class Roomstory_Invoice_Model_Setstatus {

  public function run() {
    return true;
  }

}
?>

我已经安装了Cron Scheduler模块,其中列出了我的cron作业,但当我尝试“立即运行”(用于调试)时,我得到错误-

无效回调: roomstory_invoice/setstatus::run不存在

这件事很简单,经过多次尝试,我仍然找不到错误。请告诉其他方法,或指出此代码中的错误。

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-26 15:35:52

在您的模块中,config.xml放入以下内容:

代码语言:javascript
复制
<config>
    <global>
        <models>
            <roomstoryinvoicecron>
                <class>Roomstory_Invoice_Model</class>
            </roomstoryinvoicecron>                         
        </models>
    </global>
    <crontab>
        <jobs>
            <roomstoryinvoicecron>
                <schedule>
                    <cron_expr>*/10 * * * *</cron_expr>
                </schedule>
                <run>
                    <model>roomstoryinvoicecron/observer::setStatus</model>
                </run>
            </roomstoryinvoicecron>
        </jobs>
    </crontab>
</config>

app/code/local/Roomstory/Invoice/Model/Observer.php中添加以下内容:

代码语言:javascript
复制
<?php
class Roomstory_Invoice_Model_Observer {
    public function setStatus() {
        Mage::log("WORKS!");
    }
}

确保日志已启用并正常工作,检查日志以确保;)

票数 34
EN

Stack Overflow用户

发布于 2014-01-15 03:54:07

确保在crontab中添加Magento cron.sh文件

代码语言:javascript
复制
crontab -e

*/5 * * * * /bin/sh /path-to-magento/cron.sh
票数 8
EN

Stack Overflow用户

发布于 2012-06-26 16:08:40

代码语言:javascript
复制
 <crontab>
        <jobs>
            <CompanyName_ModuleName>
                <schedule>
                    <cron_expr>*/5 * * * *</cron_expr>
                </schedule>
                <run>
                    <model>ModuleName/observer::setStatus</model>
                </run>
            </CompanyName_ModuleName>
        </jobs>
    </crontab>

并使用在模型中创建Observer.php文件

代码语言:javascript
复制
    class CompanyName_ModuleName_Model_Observer extends Mage_Core_Model_Abstract
{

   public function setStatus()
   { 

   }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11202463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档