我已经为Magento设置了我的cronjob每两个小时运行一次,这是我的主机可以设置的最快速度。但是,在我实际进入主持人的控制面板并单击特定cronjob的“运行”按钮之前,新闻通讯不会被发送。
我做错了什么?我的cron路径设置为:/bin/sh /usr/www/users/FTP_USER/cron.sh
答案 0 :(得分:1)
这是因为事件观察者是根据上下文(adminhtml,前端或在你的情况下crontab)加载的。发送观察者的简报不在crontab列表中,因此无法发送电子邮件。
请参阅此文章:http://www.aschroder.com/2010/01/magento-events-explained-and-a-few-gotchas-avoided/
答案 1 :(得分:0)
我认为这很可能是某种形式的权限/路径问题。当您通过单击控制面板中的某些内容手动触发事件时,它可能会以Apache用户身份运行(www-数据或等效项,具体取决于平台)。 cron最有可能以不同的用户身份运行。
假设您指的是核心新手cron Mage_Newsletter_Model_Observer::scheduledSend
,那么cwd
对于相对包含路径不正确就不会有任何问题。这留下了最可能的罪魁祸首a。)cron用户对你的cron.sh没有执行权限,b。)cron用户无法访问服务器上的邮件应用程序,因为它不包含在用户路径。
答案 2 :(得分:0)
根据我的经验,cron.sh脚本没有达到目的。因此我只运行cron.php。这需要使用足够的RAM和合理的超时来正确设置php cli。
在你的crontab中尝试:
* * * * * /usr/bin/php /home/USER/public_html/cron.php >> /home/USER/public_html/var/log/cron.log 2>&1
我还在var / log / cron.php中保存了一个日志文件,以便我可以看到在cron作业期间发生的错误。