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获得文件扩展名三法
Nov 25 PHP
php eval函数用法总结
Oct 31 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 PHP
php从字符串创建函数的方法
Mar 16 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
Oct 23 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
PHP匿名函数(闭包函数)详解
Mar 22 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
THINKPHP5.1 Config的配置与获取详解
Jun 08 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类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
php字符串截取函数用法分析
2014/11/25 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
2007/08/15 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
js表单登陆验证示例
2016/10/19 Javascript
JS实现图片上传预览功能
2016/11/21 Javascript
js闭包用法实例详解
2016/12/13 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python中查看文件名和文件路径
2017/03/31 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
统计系教授推荐信
2014/02/28 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
产品发布会策划方案
2014/05/12 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL