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 相关文章推荐
信用卡效验程序
Oct 09 PHP
php 删除数组元素
Jan 16 PHP
php 生成WML页面方法详解
Aug 09 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
php获取数组中重复数据的两种方法
Jun 28 PHP
PHP生成RSS文件类实例
Dec 05 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 PHP
php中try catch捕获异常实例详解
Aug 06 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生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
python机器学习之贝叶斯分类
2018/03/26 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
十佳美德少年事迹材料
2014/02/05 职场文书
新春联欢会主持词
2014/03/24 职场文书
务虚会发言材料
2014/12/25 职场文书
公务员年度个人总结
2015/02/12 职场文书