thinkphp6定时任务,php定时器EasyTask

本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask


(1).安装tp6

composer create-project topthink/think tp

(2).安装定时任务composer包

composer require easy-task/easy-task

(3).创建命令行处理类文件

php think make:command Task  task

会生成文件:tp\app\command\Task.php

将Task.php文件内容修改如下:

declare (strict_types=1);

namespace app\command;

use think\console\Command;

use think\console\Input;

use think\console\input\Argument;

use think\console\input\Option;

use think\console\Output;

class Task extends Command

{

    protected function configure()

    {

        //设置名称为task

        $this->setName('task')

            //增加一个命令参数

            ->addArgument('action', Argument::OPTIONAL, "action", '')

            ->addArgument('force', Argument::OPTIONAL, "force", '');

    }

    protected function execute(Input $input, Output $output)

    {

        //获取输入参数

        $action = trim($input->getArgument('action'));

        $force = trim($input->getArgument('force'));

        // 配置任务,每隔20秒访问2次网站

        $task = new \EasyTask\Task();

        $task->setRunTimePath('./runtime/');

        $task->addFunc(function () {

            $url = 'https://www.gaojiufeng.cn/?id=327';

            file_get_contents($url);

        }, 'request', 20, 2);;

        // 根据命令执行

        if ($action == 'start')

        {

            $task->start();

        }

     elseif ($action == 'status')

        {

            $task->status();

        }

        elseif ($action == 'stop')

        {

            $force = ($force == 'force'); //是否强制停止

            $task->stop($force);

        }

        else

        {

            exit('Command is not exist');

        }

    }

}

(4).配置tp\config\console.php文件

// +----------------------------------------------------------------------

// | 控制台配置

// +----------------------------------------------------------------------

return [

    // 指令定义

    'commands' => [

        'task' => 'app\command\Task',

    ],

];

(5).执行命令(windows请使用cmd):

php think task start  启动命令

php think task status 查询命令

php think task stop   关闭命令

php  think  task  stop  force   强制关闭命令

你可能感兴趣的:(thinkphp6定时任务,php定时器EasyTask)