zoukankan      html  css  js  c++  java
  • Yii2中Console定时任务

    项目开发中经常会需要使用到定时任务,YIi2中有一个功能丰富的控制台命令,今天主要介绍一下如何使用控制台命令编写以及运行定时任务。

    一、入口文件

    和 web 程序 index.php 入口文件一样,控制台命令也有一个入口文件,根目录下的 yii 文件。
    可以在入口文件下运行:php yii

     

    二、定时任务编写

    下载 Yii 框架后,可以看到有个 console 目录,里面有完整的目录结构:配置文件、控制器、模型、日志等。

    1、新建 TestController.php 文件

    这时再运行 php yii 命令可以看到末尾多了有关 test 控制器下写的 action 方法,直接运行这个命令就可以了。

    2、运行 php yii test/test-console

    三、定时任务传参

    上面已经介绍了如何编写定时任务,接下来介绍一下如何传参:
    1、修改 TestController.php 文件

    <?php
    namespace consolecontrollers;
    
    use yiiconsoleController;
    
    class TestController extends Controller
    {
    
        /**
         * @var 参数1
         */
        public $param1;
    
        /**
         * @var 参数2
         */
        public $param2;
    
        /**
         * 设置参数
         * @param string $actionID
         * @return array|string[]
         */
        public function options($actionID)
        {
            return ['param1', 'param2'];
        }
    
    
        /**
         * 测试脚本
         */
        public function actionTestConsole()
        {
            echo $this->param1 . PHP_EOL;
            echo $this->param2 . PHP_EOL;
        }
    }

    2、上述代码指定了两个参数 param1、param2,通过命令 php yii (控制器)/(方法名) --(参数1)=(参数值) ==(参数2)=(参数值) …

    执行:php yii test/test-console --param1=hello --param2=world

     

    四:参数设置别名

    1、传参时可以简化参数,设置别名:

    <?php
    namespace consolecontrollers;
    
    use yiiconsoleController;
    
    class TestController extends Controller
    {
    
        /**
         * @var 参数1
         */
        public $param1;
    
        /**
         * @var 参数2
         */
        public $param2;
    
        /**
         * 设置参数
         * @param string $actionID
         * @return array|string[]
         */
        public function options($actionID)
        {
            return ['param1', 'param2'];
        }
    
    
        /**
         * 参数设置别名
         * @return array
         */
        public function optionAliases()
        {
            return ['m1' => 'param1', 'm2' => 'param2'];
        }
    
    
        /**
         * 测试脚本
         */
        public function actionTestConsole()
        {
            echo $this->param1 . PHP_EOL;
            echo $this->param2 . PHP_EOL;
        }
    }

    2、执行命令:php yii test/test-console -m1=hello -m2=world

    注意:设置别名后参数之间使用一个横杠连接

  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/woods1815/p/12899584.html
Copyright © 2011-2022 走看看