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 相关文章推荐
Cannot modify header information错误解决方法
Oct 08 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
PHP生成excel时单元格内换行问题的解决方法
Aug 26 PHP
php继承的一个应用
Sep 06 PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 PHP
tp5.1 框架join方法用法实例分析
May 26 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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
javaScript基础详解
2017/01/19 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
用Python配平化学方程式的方法
2019/07/20 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
致跳高运动员广播稿
2014/01/13 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
员工保密协议书
2014/09/27 职场文书
求职自荐信怎么写
2015/03/04 职场文书
计划生育工作总结2015
2015/04/03 职场文书
聚会通知怎么写
2015/04/23 职场文书
离婚纠纷代理词
2015/05/23 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
教你用python控制安卓手机
2021/05/13 Python
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS