当前位置: 首页 > news >正文

thinkphp6(tp6)创建定时任务

使用 thinkphp6 框架中提供的命令行形式实现定时任务

一、创建一个自定义命令类文件

php think make:command Hello
会生成一个 app\command\Hello.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 Hello extends Command
{protected function configure(){// 指令配置//这里 我们 定义了一个叫 hello 的命令,到时候我们运行该hello 命令 就会执行该文件下面的execute()方法$this->setName('hello')->setDescription('Say hello');}/*** execute()方法 就是 运行该命令行类的时候要执行的具体业务逻辑代码*/protected function execute(Input $input, Output $output){// 指令输出$output->writeln('hello world');}
}

二、在 config/console.php 文件中,进行注册命令

<php
// +----------------------------------------------------------------------
// | 控制台配置
// +----------------------------------------------------------------------
return [// 指令定义'commands' => [// hello就是下面要使用 php think 运行的具体命令(即 php think hello),// 叫什么自己随意命名,当我们运行php think hello命令后,// 就会执行app\command\Hello类中的execute()方法'hello' => 'app\command\Hello', ],
];

三、运行 hello 命令

php think hello

输出

hello world

四、编写 crontab 定时任务文件,将 hello 命令 添加到定时任务中

关于crontab,请参考另外一篇文章:Linux crontab命令详解

# 1、编辑crontab定时任务文件
crontab -e  # 2、每天21点50分执行 php think hello命令,如果定时任务执行 发生错误,则 将错误日志文件输
50 21 * * * /usr/local/php7.3/bin/php /home/wwwroot/default/tp6_blog/think hello 2> /tmp/cron_error.log  

出到 / tmp/cron_error.log 文件中

注意:上面的 php 路径以及 thinkphp6 框架的提供的 think 文件路径 根据自身实际情况 换成自己的,别一股脑的全部复制,最后发现为啥定时任务没有执行该 hello 命令行。。。

五、总结

1、输入 php think make:command Hello(类库文件名字请自行定义)

2、修改 app\command\Hello 中 execute() 方法 自己的业务逻辑代码

3、在 config/console.php 注册对应的命令

4、将命令 添加到 crontab 定时任务中

相关文章:

thinkphp6(tp6)创建定时任务

使用 thinkphp6 框架中提供的命令行形式实现定时任务 一、创建一个自定义命令类文件 php think make:command Hello 会生成一个 app\command\Hello.php 命令行指令类&#xff0c;我们修改内容如下&#xff1a; <?php declare (strict_types1);namespace app\command;use …...

【学习笔记】C++ 中 static 关键字的作用

目录 前言static 作用在变量上static 作用在全局变量上static 作用在局部变量上static 作用在成员变量上 static 作用在函数上static 作用在函数上static 作用在成员函数上 前言 在 C/C 中&#xff0c;关键字 static 在不同的应用场景下&#xff0c;有不同的作用&#xff0c;这…...

攻防世界-web-file_include

1. 题目描述 打开界面&#xff0c;如下代码&#xff1a; 代码很简单&#xff0c;从参数中获取到filename然后include这个filename 2. 思路分析 2.1 首先参考常见做法&#xff0c;将参数设置为php://filter/readconvert.base64-encode/resourceflag.php&#xff0c;看是否有…...

C语言的函数指针、指针函数, 函数数组

函数指针 是指向函数的指针&#xff0c;它允许您在程序运行时动态选择要调用的函数。函数指针可以像普通变量一样传递、存储和使用&#xff0c;这使得它们在许多编程场景中非常有用&#xff0c;如回调函数、函数表、插件架构等。 以下是一个简单的例子来说明函数指针的概念&a…...

笔记本开启WiFi

笔记本开启WiFi 为了节省流量&#xff1a;笔记本开启WiFi 条件 支持热点的电脑&#xff1b;我的是华硕飞行堡垒7。 注意事项 笔记本连接公司网络&#xff0c;公司网络通常都在监管下的&#xff0c;手机连接wifi后&#xff0c;刷抖音、购物网站&#xff0c;公司后台会捕获你…...

力扣第37天----第322题、第279题

力扣第37天----第322题、第279题 文章目录 力扣第37天----第322题、第279题一、第322题--零钱兑换二、第279题--组合总和 Ⅳ 一、第322题–零钱兑换 ​ 整体思路&#xff0c;跟前面的几道完全背包差不多&#xff0c;就不具体解释了。有一些细节要注意&#xff0c;见代码注释。…...

【ArcGIS Pro二次开发】(67):处理面要素空洞

这个一个简单的小功能。 有些面要素可能会存在空洞&#xff0c;这个工具的目的就是获取面要素的空洞&#xff0c;或者去除空洞获取要素的边界。 这个功能其实在之前做拓扑功能的时候就已经有了&#xff0c;这次只是单独把它提取出来。因为有时候会单独用到这个功能。 一、要实…...

FPGA-结合协议时序实现UART收发器(一):UART协议、架构规划、框图

FPGA-结合协议时序实现UART收发器&#xff08;一&#xff09;&#xff1a;UART协议、架构规划、框图 记录FPGA的UART学习笔记&#xff0c;以及一些细节处理&#xff0c;主要参考奇哥fpga学习资料。 本次UART主要采用计数器方法实现&#xff0c;实现uart的稳定性发送和接收功能…...

web请求cookie中expires总结

用意 cookie 有失效日期 "expires"&#xff0c;如果还没有过失效期&#xff0c;即使重新启动电脑&#xff0c;cookie 仍然不会丢失 注意&#xff1a;如果没有指定 expires 值&#xff0c;那么在关闭浏览器时&#xff0c;cookie 即失效。 设置 如果cookie存储时间大…...

如何学习Java核心知识

Java作为一门广泛应用于软件开发的编程语言&#xff0c;拥有着强大的生态系统和丰富的资源&#xff0c;是值得投入时间和精力去学习的。以下是一些建议&#xff0c;帮助你系统地学习Java核心知识。 1. 学习Java语言基础&#xff1a; 学习Java语言基础是学习Java的第一步&…...

【AWS】如何用SSH连接aws上的EC2实例(虚拟机)?

目录 0.环境 1.连接结果示例 2.SSH连接思路 3.具体步骤 1&#xff09;安装并运行ssh服务 2&#xff09;启动ssh服务 3&#xff09;在AWS上找到正在运行的EC2实例&#xff0c;并且根据提供的ssh连接语句进行连接 0.环境 windows 11 64位 前提&#xff1a; 有aws账户&…...

数据结构——看完这篇保证你学会队列

数据结构——队列 一、队列的概念二、队列的实现方式三、队列所需要的接口四、接口的详细实现4.1初始化4.2销毁4.3入队4.5出队4.6获取队头元素4.7获取队尾元素4.8获取队列元素个数4.9判空 五、完整代码5.1Queue.h5.2Queue.c5.3test.c 一、队列的概念 队列&#xff1a;只允许在…...

开源免费缺陷管理工具:对比6款

在软件开发环境中&#xff0c;缺陷管理工具是关键的基础设施。例如&#xff0c;在构建一个电商平台时&#xff0c;这些工具能系统地跟踪从发现到解决的各个问题阶段。它们支持多用户协作&#xff0c;实现信息和状态的实时共享。通过数据分析&#xff0c;这些工具还能帮助团队识…...

Weblogic反序列化漏洞

文章目录 1、搭建环境2、漏洞特征3、漏洞利用1)获取用户名密码2)后台上传shell 4、检测工具 1、搭建环境 漏洞环境基于vulhub搭建–进入weak_password的docker环境 sudo docker-compose up -d拉取靶场 2、漏洞特征 404特征Weblogic常用端口&#xff1a;7001 3、漏洞利用…...

element-ui el-table 滚动到底部,进行加载下一页

使用element-ui 自带的InfiniteScroll 无限滚动组件无法使用在table里面&#xff0c;所以项目只能组件写一个 俺的方法是写了一个自定义组件&#xff0c;进行监听滚动条是否拉到最底部进行一个处理。方法如下 直接复制完事了&#xff0c; loadTableMore: { bind(el, binding…...

线性代数的学习和整理19,特征值,特征向量,以及引入的正交化矩阵概念(草稿)

目录 1 什么是特征值和特征向量&#xff1f; 1.1 特征值和特征向量这2个概念先放后 1.2 直观定义 1.3 严格定义 2 如何求特征值和特征向量 2.1 方法1&#xff1a;结合图形看&#xff0c;直观方法求 2.1.1 单位矩阵的特征值和特征向量 2.1.2 旋转矩阵 2.2 根据严格定义…...

初步了解android如何锁键

百年三万六千日&#xff0c;光阴只有瞬息间。 手机下面的三个图形&#xff0c;正方形&#xff0c;园形&#xff0c;三角形分别的什么建&#xff1f;都起到什么功能&#xff1f; 三角形的那个叫返回键&#xff0c;就是可以返回你的上一个操作; 圆形是HOME键&#xff0c;按一下可…...

行业追踪,2023-09-13

自动复盘 2023-09-13 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…...

$nextTick和setTimeout区别(宏任务微任务)

nextTick 在vue 源码中是利用 Promise.resolve()实现的。该问题实际就是Promise与setTimeout的区别&#xff0c;本质是Event Loop中微任务与宏任务的区别。 nextTick:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法&#xff0c;获取更新后的 DOM。…...

Linux内核及可加载内核模块编程

图1 Linux系统整体结构 图2 Linux的源代码结构 下面显示一段内核模块代码案例&#xff1a; #include <linux/moduLe.h> #include <linux/kernel.h #include <linux/intt.h> /*模块的初始化函数lkp_ init()_init是用于初始化的修饰符 */ static int __init lk…...

PowerBI主题模板终极指南:35款可视化模板快速美化报表

PowerBI主题模板终极指南&#xff1a;35款可视化模板快速美化报表 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 还在为PowerBI报表的单调外观而烦恼吗&#…...

QT实战:利用QAxObject与QAxWidget实现Office文档自动化,从数据填充到格式定制

1. 为什么需要Office文档自动化&#xff1f; 在企业日常运营中&#xff0c;文档处理是绕不开的环节。我见过太多同事每天花几个小时手动复制粘贴数据到Word报告和Excel表格里&#xff0c;不仅效率低下&#xff0c;还容易出错。想象一下&#xff0c;财务部门每月要生成上百份报…...

保姆级教程:用Forge为你的Minecraft服务器添加热门Mod(附Curseforge选包清单)

从零打造高可玩性Minecraft Mod服务器&#xff1a;Forge环境配置与精品Mod组合指南 当你第一次打开Curseforge网站&#xff0c;面对超过10万个Minecraft Mod时&#xff0c;那种既兴奋又茫然的感觉我深有体会。作为从2013年就开始运营Mod服务器的老玩家&#xff0c;我见证了太多…...

【湖南师范大学主办 | ACM出版,检索快且稳定 | 往届均已见刊并完成EI、Scopus检索】第三届智慧教育与计算机技术国际学术会议 (IECT 2026)暨十三届第四期“麓峰”交叉科学论坛

已通过ACM出版&#xff0c;ISBN号&#xff1a;979-8-4007-2365-0 教育方向结合&#xff1a;计算机、信息技术、人工智能、多媒体技术、大数据等主题均可投递 第三届智慧教育与计算机技术国际学术会议 (IECT 2026)暨十三届第四期“麓峰”交叉科学论坛 2026 3rd International…...

化工仿真神器 Aspen 15.0:AI 赋能 + 绿氢专项,附下载安装教程

Aspen 15.0 是 工业流程模拟与数字化平台&#xff0c;核心为化工、石化、炼油、能源等行业提供全生命周期解决方案&#xff0c;从工艺设计、模拟优化到生产运维、绿色转型全覆盖&#xff0c;15.0 版本重点强化工业 AI、生成式 AI 能力&#xff0c;适配绿色能源与可持续发展需求…...

ARM GICv3虚拟中断处理:GICV_IAR寄存器详解

1. GICV_IAR寄存器概述GICV_IAR&#xff08;Virtual Machine Interrupt Acknowledge Register&#xff09;是ARM GICv3架构中虚拟CPU接口的关键寄存器&#xff0c;主要用于虚拟机环境下的中断确认机制。当虚拟中断信号到达处理器时&#xff0c;通过读取该寄存器可以获取当前最高…...

Helm 2到Helm 3迁移实战:深入解析helm-2to3插件原理与操作指南

1. 项目概述与背景 如果你和我一样&#xff0c;在Kubernetes生态里摸爬滚打了几年&#xff0c;那你一定对Helm这个“包管理器”又爱又恨。爱的是它用声明式的Chart把复杂的应用部署变得像 helm install 一样简单&#xff1b;恨的是版本升级带来的“阵痛”&#xff0c;尤其是从…...

基础模型全生命周期管理的混合架构实践与优化

1. 基础模型全生命周期管理的架构挑战基础模型&#xff08;Foundation Models&#xff09;正在重塑AI技术栈的每个环节&#xff0c;从预训练到推理部署的全生命周期管理面临前所未有的系统架构挑战。传统HPC&#xff08;高性能计算&#xff09;集群和云原生平台各自为政的局面&…...

Flexpilot AI:开源可定制的VS Code AI编程助手配置与实战指南

1. 项目概述与核心价值作为一名在开发工具领域摸爬滚打了十多年的老码农&#xff0c;我见证过无数个“下一代编辑器”和“智能助手”的兴衰。当GitHub Copilot横空出世&#xff0c;确实改变了游戏规则&#xff0c;但随之而来的&#xff0c;是开发者们被锁定在单一服务商、高昂的…...

2026 年 TanStack npm 供应链遭入侵:42 个包 84 版本受影响,多方面待解决问题待明确

总结2026 年 5 月 11 日 19:20 至 19:26 UTC 期间&#xff0c;攻击者通过结合“Pwn Request”模式的 pull_request_target、跨越分叉↔主库信任边界的 GitHub Actions 缓存投毒&#xff0c;以及从 GitHub Actions 运行器进程中提取 OIDC 令牌&#xff0c;在 42 个 tanstack/* n…...