Windows下用cmd命令实例讲解yii2.0 的控制台定时任务

时间:2021-03-11 08:10:16

Yii中的资源是和Web页面相关的文件,可为CSS文件,JavaScript文件,图片或视频等,资源放在Web可访问的目录下,直接被Web服务器调用。

有时候有些功能需要做到计划任务中去,因此就需要yii能用php命令去执行。yii2.0是支持php命令行运行的,操作方法如下:

在yii根目录下面有个“yii”文件(不是“yii.bat”),这个文件就是入口。然后“commands”目录下会默认有个“HelloController.php”控制器文件,这个是一个demo。打开这个控制器文件,源码如下(删掉了部分注释):

<?php namespace app\commands; use yii\console\Controller; class HelloController extends Controller { /** * This command echoes what you have entered as the message. * @param string $message the message to be echoed. */
  public function actionIndex($message = 'hello world') { echo $message . "\n"; } }

从上面可以看出,在命令行运行时,会继承console下的Controller;而一般“controllers”目录中的控制器会继承web下的Controller。

所以在php命令行中执行yii脚本的步骤为:

1.新建一个脚本

在“commands”目录下面按照“HelloController.php”的格式新建一个控制器脚本文件。

2.在命令行执行脚本

在命令行敲入“php yii项目所在路径/yii 控制器名/方法名”,例如“php E:/wwwroot/yii2/yii hello/index”

如下图所示1:

Windows下用cmd命令实例讲解yii2.0 的控制台定时任务

:或下图所示2:

Windows下用cmd命令实例讲解yii2.0 的控制台定时任务

需要注意的是:php一定要设置环境变量后才能这么用。想知道php是否已加入环境变量,请用“php -v”命令来查看。

Yii中的三种控制器类

base\Controller.php        这个是下面两个的基类
console\Controller.php   这个是控制台控制器
web\Controller.php        这个是web控制器

 

 

总结如下:

1:command创建任务
2:Windows测试 :进入根目录 命令yii 加上你的任务如 yii hello
3:Linux测试: 同Windows
4:crontab建立: 定时时间 php目录 yii根目录/yii hello 如:01 1 * ** /opt/php/bin/php /data/www/weixin_yii/yii hello

 

linux ,定时任务执行方法

Windows下用cmd命令实例讲解yii2.0 的控制台定时任务