有很多教程用于设置cron,我认为我做得很正确,但出于某种原因,它不起作用。我还创建了一个控制器类来测试模型,并且它正在正常工作。
这是我的config.xml:
<config>
<modules>
<VPS_Export>
<version>0.1.0</version>
</VPS_Export>
</modules>
<global>
<models>
<vps_export>
<class>VPS_Export_Model</class>
</vps_export>
</models>
<helpers>
<vps_export>
<class>VPS_Export_Helper</class>
</vps_export>
</helpers>
</global>
<frontend>
<routers>
<vps_export>
<use>standard</use>
<args>
<module>VPS_Export</module>
<frontName>vpsexport</frontName>
</args>
</vps_export>
</routers>
</frontend>
<crontab>
<jobs>
<vps_export>
<schedule>
<cron_expr>*/5 * * * *</cron_expr><!-- every 5 minutes -->
</schedule>
<run>
<model>vps_export/observer::exportProducts</model>
</run>
</vps_export>
</jobs>
</crontab>
</config>我的Observer.php文件是:
<?php
class VPS_Export_Model_Observer
{
public function exportProducts()
{
echo "VPS Export Products called!";
Mage::Log("exportProducts called!");
}
}
?>我的测试IndexController.php文件是:
<?php
class VPS_Export_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
echo "index action called!";
Mage::getModel('vps_export/observer')->exportProducts();
}
}
?>如果我将浏览器指向http://my_server/vpsexport/index,就会看到echo语句的适当输出,并且消息会被打印到日志中,因此我知道模型是正确配置的。然而,cron并没有得到相同的结果。如果我手动运行cron.php,我不会发现任何错误,但它似乎仍然什么也不做。
有什么想法吗?
发布于 2011-04-13 13:40:58
据我所知,magento的cron系统工作在两个阶段:
它检查模块(cron_schedule)
scheduled_at列的方法。。正如您所说的,您的cron_schedule表中有条目,第一阶段是可以的。
因此,为了检查您的cron是否执行良好,您实际上必须在您的服务器中设置一个cron作业,如果您在本地工作,这将是您的计算机。
事实上,它在ubuntu上非常简单,我想它在windows上会更复杂,但是(再次猜测)不是不可能的。
或者可能每5分钟刷新一次指向cron.php文件的浏览器(就像您在config.xml中配置的那样),但是设置一个cronjob会更有效:)
希望这有帮助
编辑:如果它对您有帮助的话,那么这里的就像我的cronjob一样:
*/5 * * * * wget -q http://magento.local/cron.php发布于 2012-04-16 02:54:54
运行cron脚本的性能和后果可能存在根本差异,这取决于它是通过本地调用还是通过web服务器调用。
一个重要的区别是,当您使用APC操作码缓存的PHP (这是一个非常好的想法)。根据文档,从命令行访问PHP将清除缓存,这可能不是您真正希望每5分钟发生一次的事情!
发布于 2013-05-27 06:15:02
我知道这是很久以后的事了,但我应该扩大一点。我有点说错了,因为在启用APC的命令行中运行PHP时使用了它自己的私有缓存。如果您通过web服务器运行cron作业,那么它的现有缓存是可用的,并添加到。
这将存储相关的东西,从跑到跑。在命令行作业中使用APC可能是一个障碍,因为您可能要做的就是加载缓存,然后删除它。
https://stackoverflow.com/questions/5644037
复制相似问题