magento -- 计划任务(cron job)在magento中的作用和使用教程

Posted 阿水plus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了magento -- 计划任务(cron job)在magento中的作用和使用教程相关的知识,希望对你有一定的参考价值。

      计划任务(cron job)是Magento系统中一个很有用甚至可以说必须使用的功能,而最近在网上跟人聊天发现很多Magento的使用者不知道这个功能或者知道却认为可有可无,我在这里建议各位Magento的使用者,把这个功能使用起来吧。

在之前关于Newsletter的那篇博文我有讲到,要使新闻能按设定的时间自动发送,就必须设置好计划任务(cron job)。计划任务(cron job)简单的来说就是在系统中每隔一段时间来重复操作一件事,比如每隔多少时间清理日志,比如每天提交Sitemap给google等等。

而要设置计划任务(cron job),需要在网站运行的服务器(以linux为例)写一段脚本来定时调用网站根目录下的cron.php文件。下面是我自己使用的服务器的设置方式:

 

 

 

         当然,首先你的服务器得支持cron job你才能使用crontab 这个命令,设置完的效果是服务器每隔5分钟运行一次你的网站根目录下的cron.php文件,cron.php运行时会去检查计划任务时间表中哪些任务的预定时间已经到了,如果到了就立即执行预定的任务,比如提交sitemap,并同时根据各个任务的配置文件或预先设定的任务(特指newsletter)生成新的计划任务时间表。储存这些数据的是数据库中的cron_schedule表,进这个表你会看到一个计划任务的列表

 

 

       要让某个功能按时运行需要在对应的config.xml中设置计划任务,指定要运行的某个类的某个方法,同样以google sitemap为例

 

         

        你可以在Sitemap/Model/Observer.php文件中找到scheduledGenerateSitemaps这个方法,这个方法的作用就是向google提交sitemap。同理当你自己的模块有需要定时运行的功能是,可以参照sitemap在自己的config.xml配置要执行的方法。

        Magento系统在你安装完毕后就已经自带了不少计划任务,在后台可以看到一些对计划任务的配置项,以sitemap为例

 

 

        可以选择是否开启sitemap提交并选择提交的频率。

 

          以1.4为例,Magento自带的计划任务包括刷新分类索引,应用价格规则,更新汇率,清理日志,发送Newsletter,发送商品提醒(价格变动和库存变化)和提交google sitemap等等。

 

          

 

            所以下次再发现功能不能用比如设置的价格规则第二天失效了等,想一下自己是否忘了给网站设置了计划任务(cron job)。

以上是关于magento -- 计划任务(cron job)在magento中的作用和使用教程的主要内容,如果未能解决你的问题,请参考以下文章

Linux提权第四篇-Linux Cron Jobs(任务计划)提权(crontab文件覆盖提权Crontab Tar Wildcard(通配符)注入提权)

Kubernetes Cron Job 在创建下一个计划之前终止 Pod

Cron Job-具有Google App Engine的纯Django项目

Go cron定时任务的用法

Ansible常用模块

Ansible 管理任务计划