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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 PHP
php数组一对一替换实现代码
Aug 31 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
php中使用sftp教程
Mar 30 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
laravel使用redis队列实例讲解
Mar 23 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
php记录日志的实现代码
2011/08/08 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
python分割和拼接字符串
2013/11/01 Python
Python os.access()用法实例
2019/02/18 Python
Python3 读取Word文件方式
2020/02/13 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
英国团购网站:Groupon英国
2017/11/28 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
致跳远、跳高运动员广播稿
2014/01/09 职场文书
秋季运动会稿件
2014/01/30 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
Python的property属性详细讲解
2022/04/11 Python