Yii实现Command任务处理的方法详解


Posted in PHP onJuly 14, 2016

本文实例讲述了Yii实现Command任务处理的方法。分享给大家供大家参考,具体如下:

1.配置,执行任务所需要的组件

任务配置文件:/protected/config/console.php

配置方法跟配置main文件差不多

<?php
// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
  'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
  'name'=>'My Console Application',
  // application components
  // 自动载入的模型和组件类
  'import'=>array(
      'application.models.*',//载入"application/models/"文件夹下的所有模型类
      'application.components.*',//载入"application/components/"文件夹下的所有应用组件类
      'application.extensions.*',//载入"application/extensions/"文件夹下的所有应用组件类
  ),
  'components'=>array(
      // uncomment the following to use a MySQL database
      'db'=>array(
          'connectionString' => 'mysql:host=localhost;dbname=dbname',//连接mysql数据库
          'emulatePrepare' => true,
          'username' => 'root',//MySQL数据库用户名
          'password' => '123456',//MySQL数据库用户密码
          'charset' => 'utf8',//MySQL数据库编码
          'tablePrefix' => 'zd_', //MySQL数据库表前缀
          'enableProfiling'=>true,
          'enableParamLogging'=>true,
      ),
      //加载Email组件
      'mailer' => array(
          'class'   => 'application.extensions.mailer.EMailer',
      ),
  ),
);

2.任务文件

放在 /protected/commands/ 文件目录下继承 CConsoleCommand 基类的为任务文件 命名方法为   任务名称+Command

例如 GoCommand.php

<?php
/**
 * 自动运行文件
 */
class GoCommand extends CConsoleCommand
{
  /**
   * 死循环输出
   */
  public function run(){
    for($i=1;$i>0;$i++){
      self::echoWord($i);
      sleep(2);//休眠2秒
      //跳出
      if(i==500){
        break;
      }
    }
  }
  /**
   * 输出hollo word
   */
  public function echoWord($i){
    echo "hollo word --$i\n";
  }
}

3.执行任务

打开命令行工具,进入项目的/protected 目录下 输入yiic命令即出现提示,提示列表显示刚才写的任务文件

E:\project\app\protected>yiic
Yii command runner (based on Yii v1.1.12)
Usage: E:\zeee\zyd\protected\yiic.php <command-name> [parameters...]
The following commands are available:
- go
- mailqueue
- message
- migrate
- shell
- webapp
To see individual command help, use the following:

执行命令 yiic go 可实现任务处理

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 #PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 #PHP
Yii实现的多级联动下拉菜单
Jul 13 #PHP
YII视图整合kindeditor扩展的方法
Jul 13 #PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 #PHP
Yii安装与使用Excel扩展的方法
Jul 13 #PHP
Yii配置与使用memcached缓存的方法
Jul 13 #PHP
You might like
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
为你总结一些php信息函数
2015/10/21 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Python tkinter常用操作代码实例
2020/01/03 Python
共产党员承诺书
2014/03/25 职场文书
幸福中国演讲稿
2014/09/12 职场文书
2015年电教工作总结
2015/05/26 职场文书
mysql sock 文件解析及作用讲解
2022/07/15 MySQL