我已经参考magentocommerce.com来设置cron作业。我实现了从中得到的收益。首先,我在config.xml文件中添加了cront选项卡。显示了我为模块“ Ownmodule_Autocancel”所做的操作:

<crontab>
        <jobs>
            <ownmodule_auto_cancel>
                <schedule><cron_expr>*/5 * * * *</cron_expr></schedule>
                <run><model>order/observer::cancelPendingOrders</model></run>
            </ownmodule_auto_cancel>
        </jobs>
</crontab>


然后我在linux下打开了具有文件权限的终端,


  crontab -e
  
  * / 5 * * * * php -q /var/www/LIVE/magento/cron.php
  
  Ctrl + x-> Y(用于保存)
  
  ps aux | grep ping(我在终端窗口中得到的是)
  
  其7746 0.0 0.1 95996 2664吗? Sl 09:29 0:00 / usr / lib / i386-linux-gnu / unity-lens-shopping / unity-shopping-daemon
  
  其10106 0.0 0.0 0.0436436 pts / 0 S + 11:18 0:00 grep --color = auto ping
  
  杀死7746
  
  ps aux | grep ping(我在终端窗口中得到的是)
  
  其10106 0.0 0.0 0.0436436 pts / 0 S + 11:18 0:00 grep --color = auto ping
  
  crontab -l(我在终端窗口中看到的是)
  
  * / 5 * * * * php -q / var / www / LIVE / magento / cron.php


但是有些事情没有解决。我不知道如何在后端cron(计划任务)中安排5分钟的时间。请检查以上工作,并给我正确的解决方案。这是为我的模块完成的。另外,如果我错过了一些其他的工作来完成cron工作,请告诉我。

最佳答案

在每次运行cron.php时,系统都会调度所有应在“ Schedule Ahead for”字段中启动的作业。然后,它检查是否所有待处理(已调度)的作业都应运行,如果是,它将启动该过程。

“每个生成时间表”是时间表生成到队列之间的时间间隔。
“提前计划”是一个时间间隔,它确定将cronjobs添加到挂起队列中的时间提前多少。

因此,基本上,您应该将“提前计划”设置为与“每隔生成时间表”相同或更大一些。时间取决于您,但是它应该大于您在SSH crontab中设置的时间。

要检查crontab是否正常工作,可以检查数据库表“ cron_schedule”以查看是否安排了任何作业。

是“ php”还是“ usr / bin / php”取决于服务器。它可能是“ usr / local / bin / php”。

关于php - magento中的cron作业设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29406187/

10-11 23:18
查看更多