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和ACCESS写聊天室(五)
Oct 09 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
简单PHP上传图片、删除图片实现代码
May 12 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
php调用C代码的实现方法
Mar 11 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
php中Ctype函数用法详解
Dec 09 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
SSI指令
2006/11/25 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
初识php MVC
2014/09/10 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python查看zip包中文件及大小的方法
2015/07/09 Python
python黑魔法之参数传递
2016/02/12 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python装饰器用法与知识点小结
2020/03/09 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
2015年教师师德师风承诺书
2015/04/28 职场文书
开场白怎么写
2015/06/01 职场文书
自信主题班会
2015/08/14 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS
Redis+AOP+自定义注解实现限流
2022/06/28 Redis