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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
Yii框架form表单用法实例
Dec 04 PHP
PHP连接操作access数据库实例
Mar 30 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
详解PHP中的PDO类
2015/07/06 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Python标准库之Sys模块使用详解
2015/05/23 Python
使用python实现省市三级菜单效果
2016/01/20 Python
Python列表(List)知识点总结
2019/02/18 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
授权委托书格式模板
2014/04/03 职场文书
跳蚤市场口号
2014/06/13 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
《迟到》教学反思
2016/02/24 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
MySQL数据库简介与基本操作
2022/05/30 MySQL
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android