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操作XML作为数据库的类
Dec 19 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
php解决约瑟夫环示例
Apr 09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
php银联网页支付实现方法
Mar 04 PHP
如何在HTML 中嵌入 PHP 代码
May 13 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
PHP数据库处理封装类实例
Dec 24 PHP
PHP生成短网址的思路以及实现方法的详解
Mar 25 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
php反射应用示例
2014/02/25 PHP
php include类文件超时问题处理
2015/02/06 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
深入理解vue中的$set
2017/06/01 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
python利用百度AI实现文字识别功能
2018/11/27 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
机电一体化专业应届本科生求职信
2013/09/27 职场文书
门卫班长岗位职责
2013/12/15 职场文书
考试没考好检讨书
2014/01/31 职场文书
卖房协议书
2014/04/11 职场文书
学生保证书
2015/01/16 职场文书
2015年售票员工作总结
2015/04/29 职场文书
如何在C++中调用Python
2021/05/21 Python
sql字段解析器的实现示例
2021/06/23 SQL Server
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android