Yii通过控制台命令创建定时任务

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Yii通过控制台命令创建定时任务假设Yii项目路径为 /home/apps/

1. 创建文件/home/apps/PRotected/commands/crons.php

<?php$yii = '/home/apps/framework/yii.php';require_once($yii); $configFile = dirname(__FILE__).'/../config/console.php';Yii::createConsoleapplication($configFile)->run();

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

<?php return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'Emergency', 'import'=>array( 'application.models.*', 'application.components.*', 'application.extensions.*', ), 'components'=>array( 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'info, warning, error', ), ), ), 'db'=>array( 'class'=>'application.extensions.PHPPDO.CPdoDbConnection', 'pdoClass' => 'PHPPDO', 'connectionString' => 'MySQL:host=xxxx;dbname=xxx', 'emulatePrepare' => true, 'username' => 'xxx', 'passWord' => 'xxx', 'charset' => 'utf8', 'tablePrefix' => 'tbl_', ), ), 'params' => require('params.php'),);

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

<?php class TestCommand extends CConsoleCommand { public function run() { ... } }

4. 创建定时任务

$ crontab -e

插入

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

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航