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 相关文章推荐
BBS(php &amp; mysql)完整版(一)
Oct 09 PHP
php 删除记录实现代码
Mar 12 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
php引用地址改变变量值的问题
Mar 23 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
深入file_get_contents与curl函数的详解
Jun 25 PHP
PHP的引用详解
Feb 22 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
PHP在Web开发领域的优势
2006/10/09 PHP
PHP的栏目导航程序
2006/10/09 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
理论讲解python多进程并发编程
2018/02/09 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
平安建设汇报材料
2014/12/29 职场文书
安全保证书
2015/01/16 职场文书
求职信范文怎么写
2015/03/19 职场文书
大学生实习证明
2015/06/16 职场文书