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,记得用星星支持我们哦

目录
相关文章
|
2月前
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
|
3月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
42 2
|
3月前
|
PHP
PHP——安装ThinkPHP框架报错
PHP——安装ThinkPHP框架报错
35 0
|
4月前
|
Java API PHP
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
【亲测有效,官方提供】php版本企查查api接口请求示例代码,php请求企查查api接口,thinkphp请求企查查api接口
145 1
|
4月前
|
安全 前端开发 API
PHP框架详解 - ThinkPHP框架
PHP框架详解 - ThinkPHP框架
|
6月前
|
设计模式 前端开发 PHP
【PHP开发专栏】ThinkPHP框架实战开发
【4月更文挑战第29天】ThinkPHP是中国流行的PHP框架,以其轻量级、模块化和高安全性受到开发者欢迎。本文介绍了ThinkPHP的基础,包括MVC设计模式,以及核心组件如路由、数据库操作、表单处理、模板引擎和错误处理。通过一个博客系统示例,展示了如何进行项目开发,包括控制器、模型和视图的创建。使用ThinkPHP能有效提升开发效率,帮助开发者快速构建复杂的Web应用。
90 0
|
6月前
|
PHP 调度
PHP 定时任务方法封装
PHP 定时任务方法封装
69 0
|
安全 Unix Java
详解PHP实现定时任务的五种方法
详解PHP实现定时任务的五种方法
1079 0
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
2月前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
146 9
下一篇
无影云桌面