好的,所以这让我在过去的4个小时里疯狂了。我想在Magento上运行一个cronjob。这是我的相关目录结构:
|app
|code
|local
|MOST
|Wallet
|etc
|config.xml
|Model
|Cron.php
和我的config.xml一样
<?xml version="1.0"?>
<config>
<modules>
<MOST_Wallet>
<version>0.1.0</version>
</MOST_Wallet>
</modules>
<global>
<helpers>
<wallet>
<class>MOST_Wallet_Helper</class>
</wallet>
</helpers>
<models>
<wallet>
<class>MOST_Wallet_Model</class>
</wallet>
</models>
</global>
<crontab>
<jobs>
<most_wallet>
<schedule>
<cron_expr>* * * * *</cron_expr>
</schedule>
<run>
<model>MOST_Wallet/cron::updateWallet</model>
</run>
</most_wallet>
</jobs>
</crontab>
</config>
文件Cron.php存在并且其中包含updateWallet方法,检查拼写错误:)
cron没有启用,但这是不相关的,因为现在我正在尝试通过直接打开它来使cron.php执行我的脚本manualy。这种测试方法可行,因为所有其他cron任务似乎都运行良好。
现在,cron作业失败了。经过一些搜索后,我发现了正在抛出的错误。
警告:include(Mage / MOST / Wallet / Model / Cron.php):无法打开流:第93行/var/www/magento_test/lib/Varien/Autoload.php中没有此类文件或目录
由于某些原因,你们可以看到Magento尝试从Mage文件夹而不是从本地文件夹加载我的Cron类。这会导致Cron Observer抛出“无效回调”异常。
如果有人知道可能导致这种情况的原因,我会很高兴。
修改
Dushyant Joshi说配置应该是:
<config>
---
<crontab>
<jobs>
<most_wallet>
<schedule>
<cron_expr>* * * * *</cron_expr>
</schedule>
<run>
<model>wallet/cron::updateWallet</model><!-- change here -->
</run>
</most_wallet>
</jobs>
</crontab>
该错误也是MOST_Wallet_Model_Cron类名称中的错字。毕竟Typos确实是最糟糕的错误。
干杯。
答案 0 :(得分:0)
按如下方式更改您的代码。
<config>
---
<crontab>
<jobs>
<most_wallet>
<schedule>
<cron_expr>* * * * *</cron_expr>
</schedule>
<run>
<model>wallet/cron::updateWallet</model><!-- change here -->
</run>
</most_wallet>
</jobs>
</crontab>
</config>
刷新缓存然后检查