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 相关文章推荐
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
php smarty的预保留变量总结
Dec 04 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
php输出xml必须header的解决方法
Oct 17 PHP
php常用的url处理函数总结
Nov 19 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
php日期操作技巧小结
Jun 25 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP strripos函数用法总结
Feb 11 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服务器实现多session并发运行
2006/10/09 PHP
php 表单验证实现代码
2009/03/10 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
php实现将Session写入数据库
2015/07/26 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
2016/11/10 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
JSF的标签库有哪些
2012/04/27 面试题
金融行业职业生涯规划范文
2014/01/17 职场文书
大连导游词
2015/02/12 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
铁人观后感
2015/06/16 职场文书
mysql事务对效率的影响分析总结
2021/10/24 MySQL
MySQL 服务和数据库管理
2021/11/11 MySQL
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers