linux thinkphp 计划任务_thinkphp5.1+Linux定时任务布置开发

本文分享在Linux系统下搭建TP定时任务的过程。先在TP内创建对应程序,利用命令行操作,设置好相关文件和方法;接着在Linux系统用crontab -e编辑添加定时任务;最后查看提前创建的日志文件验证结果,以实现定时处理数据的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天因为需求的问题,需要在Linux的基础下做一个定时任务,因为也是第一次尝试,很幸运的成功了,所以记录下来,分享给大家,也希望对有需要的同学有帮助。

定时任务功能逻辑:Linux系统定时任务,定时执行,执行时触发TP写的程序,来完成想要处理数据的目的

那么首先,我先将定时任务的整体划分为几个步骤:在TP内创建对应需要执行的程序

在Linux系统内写入定时任务

定时任务执行并测试查看执行结果

第一步:程序部分创建

在TP5.1的开发手册里,有一项关于“命令行”的介绍,我们这里使用的便是命令号方面的操作。

如果有还不清楚这块的,可以去先去官方文档学习了解一下

另外还有就是要知道命令行在TP中所对应的文件,这个在文档中虽然介绍的不是很细致,但是通过查阅资料也是可以理解的

command.php 便是 "命令行定义文件",是在application(也叫app)目录下的

因为我考虑到后期可能会要创建不止一个定时任务,所以我想将所有的定时任务文件放在一起,故使用了下面的命令php think make:command command/InquiryPool

然后还要在app/command.php里面加上下图命令才可以正常使用return['app\command\InquiryPool'];

接着往下看

执行过上面的命令以后,会自动创建command下的InquiryPool.php文件,这里边会自动生成两个方法,一个是configure,一个是execute

configure--主要用于定义“命令的名称”以及“命令的描述”,方便你在运行php think 时调用哪个命令,比如该例子:php think test,

$this->setName('test')->setDescription('定时任务');

我们设置过configure里的内容后,在执行php think命令,你会发现在command命令里,就会出现你创建的这个命令名称

做到这里---就表示我们可以调用这个test命令了,但是也要注意我在上面的截图中圈住了一句话:

这句话的意思就是说,我执行 php think test命令时,就会自动运行execute方法,下面给大家截图演示一下:

这里有一个重点需要理解的---为什么说创建了这个command命令,就可以去做定时任务了,因为我们是在定时任务里去触发这个php think test的命令,然后test命令执行时又会自动去执行execute方法,从而达到数据处理的目的,这就是核心思想。

第二步:Linux定时任务设置

先使用crontab -l 查看一下目前已经存在的定时任务,这里不再做展示。

然后可以直接使用crontab -e 来编辑添加想要做的定时任务,具体的时间设置可以参考上一篇文章 http://www.sosphp.cn/article/detail/88.html

表示每10分钟执行一次,且暂时记录在/www/wwwroot/order/runtime/message/2020.log下

这样定时任务就算完成了。

第三步:查看2020.log文件,进行验证,哦,对了,这里还要注意一点,2020.log文件需要提前创建,定时任务是不会自动创建的,换句话说就是路径一定要存在。

至于你使用定时任务要做什么样的数据处理,我想你应该知道要在哪里进行操作了吧。

希望此贴对你有帮助哦,加油!!SosPHP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值