我想在我的模块中设置一个cron作业。我按照Magento wiki - how_to_setup_a_cron_job上的说明操作,但我的cron作业根本没有执行。
这是我的config.xml (app/code/local/Roomstory/Invoice/etc/config.xml)
<?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)
<?php
class Roomstory_Invoice_Model_Setstatus {
public function run() {
return true;
}
}
?>
我已经安装了Cron Scheduler模块,其中列出了我的cron作业,但当我尝试“立即运行”(用于调试)时,我得到错误-
无效回调: roomstory_invoice/setstatus::run不存在
这件事很简单,经过多次尝试,我仍然找不到错误。请告诉其他方法,或指出此代码中的错误。
谢谢!
发布于 2012-06-26 15:35:52
在您的模块中,config.xml
放入以下内容:
<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
中添加以下内容:
<?php
class Roomstory_Invoice_Model_Observer {
public function setStatus() {
Mage::log("WORKS!");
}
}
确保日志已启用并正常工作,检查日志以确保;)
发布于 2014-01-15 03:54:07
确保在crontab中添加Magento cron.sh文件
crontab -e
*/5 * * * * /bin/sh /path-to-magento/cron.sh
发布于 2012-06-26 16:08:40
<crontab>
<jobs>
<CompanyName_ModuleName>
<schedule>
<cron_expr>*/5 * * * *</cron_expr>
</schedule>
<run>
<model>ModuleName/observer::setStatus</model>
</run>
</CompanyName_ModuleName>
</jobs>
</crontab>
并使用在模型中创建Observer.php文件
class CompanyName_ModuleName_Model_Observer extends Mage_Core_Model_Abstract
{
public function setStatus()
{
}
}
https://stackoverflow.com/questions/11202463
复制相似问题