当前位置:首页 > CMS教程 > 其它CMS > 列表

yii框架通过控制台命令创建定时任务示例

发布:smiling 来源: PHP粉丝网  添加日期:2020-11-25 14:25:44 浏览: 评论:0 

这篇文章主要介绍了yii框架通过控制台命令创建定时任务示例,需要的朋友可以参考下。

假设Yii项目路径为 /home/apps/

1. 创建文件 /home/apps/protected/commands/crons.php,代码如下:

  1. $yii = '/home/apps/framework/yii.php'
  2.  
  3. require_once($yii);  
  4.  
  5. $configFile = dirname(__FILE__).'/../config/console.php'
  6.  
  7. Yii::createConsoleApplication($configFile)->run(); 

2. 创建需要的配置文件 /home/apps/protected/config/console.php,配置需要的组件、数据库连接,日志等信息,格式类似主配置文件main.php,代码如下:

  1. return array
  2.     'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'
  3.     'name'=>'Emergency'
  4.  
  5.     'import'=>array(  
  6.             'application.models.*'
  7.             'application.components.*'
  8.             'application.extensions.*'
  9.     ), 
  10.  
  11.     'components'=>array
  12.         'log'=>array
  13.             'class'=>'CLogRouter'
  14.             'routes'=>array
  15.                 array
  16.                     'class'=>'CFileLogRoute'
  17.                     'levels'=>'info, warning, error'
  18.                 ), 
  19.             ), 
  20.         ), 
  21.         'db'=>array
  22.             'class'=>'application.extensions.PHPPDO.CPdoDbConnection'
  23.             'pdoClass' => 'PHPPDO'
  24.             'connectionString' => 'mysql:host=xxxx;dbname=xxx'
  25.             'emulatePrepare' => true, 
  26.             'username' => 'xxx'
  27.             'password' => 'xxx'
  28.             'charset' => 'utf8'
  29.             'tablePrefix' => 'tbl_'
  30.         ), 
  31.     ),  
  32.  
  33.     'params' => require('params.php'), 
  34. ); 

3. 在 /home/apps/protected/commands/ 下新建 TestCommand 类,继承 CConsoleCommand,在TestCommand中,可以使用项目的配置信息和Yii的各种方法,代码如下:

  1. class TestCommand  extends CConsoleCommand  
  2. {  
  3.     public function run() 
  4.     {  
  5.         ... 
  6.     }  

4. 创建定时任务,代码如下:

$ crontab -e

插入代码如下:

1 * * * * /home/php/bin/php -f /home/apps/protected/commands/crons.php Test &

即为每小时的第一分钟执行TestCommand类中的内容,类似的可以在/home/apps/protected/commands/下新建其他类,使用命令行执行。

Tags: yii框架定时任务

分享到: