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


Posted in PHP onApril 30, 2014

假设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/下新建其他类,使用命令行执行。

PHP 相关文章推荐
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
ThinkPHP路由机制简介
Mar 23 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
yii框架builder、update、delete使用方法
Apr 30 #PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 #PHP
php+js iframe实现上传头像界面无跳转
Apr 29 #PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 #PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 #PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 #PHP
PHP include任意文件或URL介绍
Apr 29 #PHP
You might like
PHP中鲜为人知的10个函数
2014/02/28 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
让您的菜单不离网站
2006/10/03 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
Python使用python-docx读写word文档
2019/08/26 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
介绍一下Linux文件的记录形式
2012/04/18 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
学生党员思想汇报
2013/12/28 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
责任心演讲稿
2014/05/14 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
社区志愿者活动方案
2014/08/18 职场文书
2015年党员承诺书
2015/01/21 职场文书
个人党性锻炼总结
2015/03/05 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
社区党建工作总结2015
2015/05/13 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
angular4实现带搜索的下拉框
2022/03/25 Javascript