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安装为Apache DSO
Oct 09 PHP
PHP+MYSQL的文章管理系统(二)
Oct 09 PHP
火车头采集器3.0采集图文教程
Mar 17 PHP
php实现的简单压缩英文字符串的代码
Apr 24 PHP
php面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
Windows中使用计划任务自动执行PHP程序实例
May 09 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
Laravel统计一段时间间隔的数据方法
Oct 09 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
PHP编程函数安全篇
2013/01/08 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Django实现分页功能
2018/07/02 Python
Python读取指定日期邮件的实例
2019/02/01 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
python中shell执行知识点
2020/05/06 Python
房屋过户委托书范本
2014/10/07 职场文书
毕业生党员个人总结
2015/02/14 职场文书
信访维稳承诺书
2015/05/04 职场文书
2016年情人节问候语
2015/11/11 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
Python开发简易五子棋小游戏
2022/05/02 Python