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 面向对象 final类与final方法
May 05 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PHP Session机制简介及用法
Aug 19 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
php识别翻转iphone拍摄的颠倒图片
May 17 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
PHP autoload使用方法及步骤详解
Sep 05 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创建多级目录的两种方法
2016/10/28 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
Javascript实现字数统计
2015/07/03 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
浅谈Python爬取网页的编码处理
2016/11/04 Python
使用numba对Python运算加速的方法
2018/10/15 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
社区包粽子活动方案
2014/01/21 职场文书
文科生自我鉴定
2014/02/15 职场文书
yy生日主持词
2014/03/20 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
北京导游词
2015/02/12 职场文书
商务代表岗位职责
2015/02/15 职场文书
员工旷工检讨书
2015/08/15 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫