大木木 发表于 2024-2-25 01:27:56

使用ThinkPHP框架(thinkphp8.0)创建定时任的操作步骤

1、安装定时任务composer包
composer require easy-task/easy-task2、创建命令行处理类文件
php think make:command Tasktask会生成文件:app\command\Task.php
将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();
      $task->setRunTimePath('./runtime/');
      $task->addFunc(function () {
            $url = 'https://www.wushengyong.com/';
            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');
      }
    }
}3、配置config\console.php文件
<?php
// +----------------------------------------------------------------------
// | 控制台配置
// +----------------------------------------------------------------------
return [
    // 指令定义
    'commands' => [
      'task' => 'app\command\Task',
    ],
];4、执行命令(windows请使用cmd):
php think task start启动命令
php think task status 查询命令
php think task stop   关闭命令
phpthinktaskstopforce   强制关闭命令以上就是使用ThinkPHP框架(thinkphp8.0)创建定时任的操作步骤的详细内容,更多关于ThinkPHP框架创建定时任务的资料请关注脚本之家其它相关文章!

来源:https://www.jb51.net/program/313218qca.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 使用ThinkPHP框架(thinkphp8.0)创建定时任的操作步骤