Chinaunix首页 | 论坛 | 博客
  • 博客访问: 268920
  • 博文数量: 59
  • 博客积分: 1368
  • 博客等级: 中尉
  • 技术积分: 1071
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-02 06:06
文章分类

全部博文(59)

文章存档

2012年(59)

我的朋友

分类: 系统运维

2012-03-04 01:18:33

在上一篇文章《Magento模块中添加计划任务Cron Job》中,我们简单地介绍了怎样为Magento设置计划任务(Cron Job),这篇文章中我们将通过一个简单的实例介绍为一个模块添加计划任务的方法,在这个例子中,我们将添加这样的一个计划任务:每5分钟使用Mage::log('Hello, World!');在/var/log/system.log文件中添加一行"Hello, World!"。

1 新建模块
在/app/code/local/MagentoBoy/MyCron目录下新建一个模块MagentoBoy_MyCron,并添加模块文件:
/app/etc/modules/MagentoBoy_MyCron.xml
  1. <?xml version="1.0"?>
  2. <config>
  3.     <modules>
  4.         <MagentoBoy_MyCron>
  5.             <active>true</active>
  6.             <codePool>local</codePool>
  7.         </MagentoBoy_MyCron>
  8.     </modules>
  9. </config>
并添加配置文件:
/app/code/local/MagentoBoy/MyCron/etc/config.xml
  1. <?xml version="1.0"?>
  2. <config>
  3.     <modules>
  4.         <MagentoBoy_MyCron>
  5.             <version>0.1.0</version>
  6.         </MagentoBoy_MyCron>
  7.     </modules>
  8. </config>
2 添加Cron Job
修改配置文件config.xml,添加
  1. <config>
  2.     <global>
  3.         <models>
  4.             <mycron>
  5.                 <class>MagentoBoy_MyCron_Model</class>
  6.             </mycron>
  7.         </models>
  8.     </global>
  9.     <crontab>
  10.         <jobs>
  11.             <log_helloworld>
  12.                 <schedule>
  13.                     <cron_expr>*/5 * * * *</cron_expr>
  14.                 </schedule>
  15.                 <run>
  16.                     <model>mycron/observer::helloWorld</model>
  17.                 </run>
  18.             </log_helloworld>
  19.         </jobs>
  20.     </crontab>
  21. </config>
我们必须为计划任务设置一个唯一的标识符,这里我们设置为log_helloworld
计划任务的周期配置在cron_expr中设置,因为这个任务的周期为5分钟每次,所以我们设置为*/5 * * * *
计划任务执行的函数在model中设置,我们这里设置为mycron/observer::helloWorld,对应的文件为/app/code/local/MagentoBoy/MyCron/Model/Observer.php,我们添加这个文件,并添加要执行的函数helloWorld():
  1. <?php

  2. class MagentoBoy_Mycron_Model_Observer
  3. {
  4.     public function helloWorld()
  5.     {
  6.         Mage::log('Hello, World!');
  7.         return $this;
  8.     }
  9. }
刷新缓存,观察/var/log/system.log文件,我们将发现系统每5分钟向该文件添加一行"Hello, World!"。

阅读(2969) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~