当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2024-03-16 13:28:45 浏览: 评论:0 

这篇文章给大家介绍了使用ThinkPHP框架(thinkphp8.0)创建定时任的操作步骤,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下。

1、安装定时任务composer包

composer require easy-task/easy-task

2、创建命令行处理类文件

php think make:command Task  task

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

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

  1. <?php 
  2. declare (strict_types=1); 
  3.    
  4. namespace app\command; 
  5.    
  6. use think\console\Command; 
  7. use think\console\Input; 
  8. use think\console\input\Argument; 
  9. use think\console\input\Option; 
  10. use think\console\Output; 
  11.    
  12. class Task extends Command 
  13.     protected function configure() 
  14.     { 
  15.         //设置名称为task 
  16.         $this->setName('task'
  17.             //增加一个命令参数 
  18.             ->addArgument('action', Argument::OPTIONAL, "action"''
  19.             ->addArgument('force', Argument::OPTIONAL, "force"''); 
  20.     } 
  21.    
  22.     protected function execute(Input $input, Output $output
  23.     { 
  24.         //获取输入参数 
  25.         $action = trim($input->getArgument('action')); 
  26.         $force = trim($input->getArgument('force')); 
  27.    
  28.         // 配置任务,每隔20秒访问2次网站 
  29.         $task = new \EasyTask\Task(); 
  30.         $task->setRunTimePath('./runtime/'); 
  31.         $task->addFunc(function () { 
  32.             $url = 'https://www.wushengyong.com/'
  33.             file_get_contents($url); 
  34.         }, 'request', 20, 2);; 
  35.    
  36.         // 根据命令执行 
  37.         if ($action == 'start'
  38.         { 
  39.             $task->start(); 
  40.         } 
  41.         elseif ($action == 'status'
  42.         { 
  43.             $task->status(); 
  44.         } 
  45.         elseif ($action == 'stop'
  46.         { 
  47.             $force = ($force == 'force'); //是否强制停止 
  48.             $task->stop($force); 
  49.         } 
  50.         else 
  51.         { 
  52.             exit('Command is not exist'); 
  53.         } 
  54.     } 

3、配置config\console.php文件

  1. <?php 
  2. // +---------------------------------------------------------------------- 
  3. // | 控制台配置 
  4. // +---------------------------------------------------------------------- 
  5. return [ 
  6.     // 指令定义 
  7.     'commands' => [ 
  8.         'task' => 'app\command\Task'
  9.     ], 
  10. ]; 

4、执行命令(windows请使用cmd):

php think task start  启动命令

php think task status 查询命令

php think task stop   关闭命令

php  think  task  stop  force   强制关闭命令

Tags: ThinkPHP创建定时任务

分享到: