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
Oct 09 PHP
简单的cookie计数器实现源码
Jun 07 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
ThinkPHP实现一键清除缓存方法
Jun 26 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
谈谈 PHP7新增功能
Dec 16 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 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定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
PHP常用技巧汇总
2016/03/04 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
Python lxml模块安装教程
2015/06/02 Python
python定时任务 sched模块用法实例
2019/11/04 Python
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
幼儿教师工作感言
2014/02/14 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
2014年减负工作总结
2014/12/10 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
mysql 生成连续日期及变量赋值
2022/03/20 MySQL