thinkphp6定时任务,tp6定时任务,thinkphp定时任务,php定时任务,php定时器

简介: thinkphp6定时任务,tp6定时任务,thinkphp定时任务,php定时任务,php定时器

本教程使用的定时任务基于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文件内容修改如下:

<?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文件

<?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   强制关闭命令

提示:后台执行失败可修改为前台启动查看问题或者查看日志文件,有问题可以在qq群反馈bug,记得用星星支持我们哦

目录
相关文章
|
4月前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
5月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
44 2
|
5月前
|
PHP
PHP——安装ThinkPHP框架报错
PHP——安装ThinkPHP框架报错
57 0
|
6月前
|
Java API PHP
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
183 1
|
6月前
|
安全 前端开发 API
PHP框架详解 - ThinkPHP框架
PHP框架详解 - ThinkPHP框架
|
8月前
|
设计模式 前端开发 PHP
【PHP开发专栏】ThinkPHP框架实战开发
【4月更文挑战第29天】ThinkPHP是中国流行的PHP框架,以其轻量级、模块化和高安全性受到开发者欢迎。本文介绍了ThinkPHP的基础,包括MVC设计模式,以及核心组件如路由、数据库操作、表单处理、模板引擎和错误处理。通过一个博客系统示例,展示了如何进行项目开发,包括控制器、模型和视图的创建。使用ThinkPHP能有效提升开发效率,帮助开发者快速构建复杂的Web应用。
112 0
|
8月前
|
PHP 调度
PHP 定时任务方法封装
PHP 定时任务方法封装
73 0
|
2月前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
55 0
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####