thinkphp6使用easytask实现定时任务

composer安装,具体文档请移步 [EasyTask] https://gitee.com/392223903/EasyTask

composer require easy-task/easy-task

创建文件

php think make:command Task task

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

<?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();
        //是否常驻内存,false表示下面运行php think task start命令时不能退出小黑框,true的时候可退出小黑框
        $task->setDaemon(true); 
        $task->setRunTimePath('./runtime/task/'); //缓存文件目录,手动创建定义
        $task->addFunc(function () { //具体执行函数,方法一 addFunc()
            $hour = date('H');
            if ($hour != 15) { //每天下午3点执行定时任务
                return;
            }else{
                //具体执行的业务逻辑
                (new xxxController())->xxxMethod1(); 
            }
        }, 'checkPriceAndTime', 3600, 1); //checkPriceAndTime是task进程名,意为每3600秒(1小时)执行一次
        //==========================================
        //具体执行函数,方法二 addClass()
	//$task->addClass(CrontabController::class, 'checkContractFeesPrice', 'oa_checkContractFeesPrice', 10, 1);
	//$task->addClass(CrontabController::class, 'checkContractTime', 'oa_checkContractTime', 10, 1);
	//根据命令执行
        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');
        }
    }
}

配置tp\config\console.php文件

<?php
// +----------------------------------------------------------------------
// | 控制台配置
// +----------------------------------------------------------------------
return [
    // 指令定义
    'commands' => [
        'task' => 'app\command\Task', //task类所在位置
    ],
];

执行命令如下:

php think task start  启动命令
php think task status 查询命令
php think task stop   关闭命令
php think task stop force   强制关闭命令

 

本文为 今天也想见到你 博客文章,转载无需和我联系,但请注明来自 今天也想见到你 博客 0925.wang
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇