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 相关文章推荐
BBS(php &amp; mysql)完整版(二)
Oct 09 PHP
Zend Guard一些常见问题解答
Sep 11 PHP
如何设置mysql允许外网访问
Jun 04 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
PHP数组函数知识汇总
May 12 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
php中文语义分析实现方法示例
Sep 28 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP通用检测函数集合
2011/02/08 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
js计算页面刷新的次数
2009/07/20 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
Python中if有多个条件处理方法
2020/02/26 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
Python偏函数实现原理及应用
2020/11/20 Python
分享一个python的aes加密代码
2020/12/22 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
护士实习自我鉴定
2013/10/22 职场文书
党员创先争优承诺书
2014/03/26 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
药店采购员岗位职责
2014/09/30 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB