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语法(3)
Oct 09 PHP
投票管理程序
Oct 09 PHP
php实现删除指定目录下相关文件的方法
Oct 20 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
如何使用php实现评委评分器
Jul 31 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP实现文件上传功能实例代码
May 18 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
php实现统计IP数及在线人数的示例代码
Jul 22 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.MVC的模板标签系统(五)
2006/09/05 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
js实现点击烟花特效
2020/10/14 Javascript
python回调函数中使用多线程的方法
2017/12/25 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
WxPython建立批量录入框窗口
2019/02/27 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
法务专员岗位职责
2015/02/14 职场文书
Python绘制分类图的方法
2021/04/20 Python