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自动获取目录下的模板的代码
Aug 08 PHP
比较时间段一与时间段二是否有交集的php函数
May 31 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
PHP实现多图片上传类实例
Jul 26 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
详解php中生成标准uuid(guid)的方法
Apr 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
php获取网页内容方法总结
2008/12/04 PHP
PHP修改session_id示例代码
2014/01/08 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
js中的布尔运算符使用介绍
2013/11/20 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
python处理csv数据的方法
2015/03/11 Python
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
ajax是什么及其工作原理
2012/02/08 面试题
党员反邪教心得体会
2016/01/15 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL