我创建了自定义模块。我在其中创建了一个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();
如果我遗失了某些内容,请帮助并告诉我
答案 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手动排队作业。如果作业在此之后没有排队,那么它很可能是缓存或代码问题。