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 多个submit提交表单 处理方法
Jul 07 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
php创建无限级树型菜单
Nov 05 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP array_shift()用法实例分析
Jan 07 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 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 explode()函数用法讲解
2019/02/15 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python if语句知识点用法总结
2018/06/10 Python
python中比较两个列表的实例方法
2019/07/04 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
初中女生自我鉴定
2013/12/19 职场文书
化学教学随笔感言
2014/02/19 职场文书
爱与责任演讲稿
2014/05/20 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
英文版辞职信
2015/02/28 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
九年级数学教学反思
2016/02/17 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android