ThinkPHP怎么做定时任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP怎么做定时任务相关的知识,希望对你有一定的参考价值。

就是我想在每周日零点执行一个php程序,清空mysql表里的一个字段值。

参考技术A 这个功能用服务器上面的定时任务做吧,
非得用php也可以做,使用
set_time_limit(0);
ignore_user_abort(true);
写一个死循环,sleep(1),每秒执行一次,具体业务逻辑你自己写,建议这个php程序,依赖一些外部数据来维持,每执行一次,然后记录执行次数到数据库,或者文件里,每次执行读取这个执行次数记录,用来控制程序的执行个数(因为这个程序算是永久进程,除非服务器重启了),除了控制执行次数,也要增加一个文件,数据库记录,来记录一个状态,每次程序执行同时去检查这个状态,如果是1,则执行,如果是0则程序终止,并且前面的执行次数-1,。这样就可以手动结束这些永久php进程了,同时也可以写一些日志,来观察程序的运行状况本回答被提问者和网友采纳

thinkphp3.2.3 定时任务重新加载, 无法加载新的定时任务的问题

 

thinkphp3.2.3 的定时任务有个坑,一旦你改名定时任何或者路径,新的定时任务将无法加载,无论你重启php还是重启nginx,甚至重启服务器,都不行。

原因是你要删掉一个类似lock文件,才可以修改或加载新的定时任务

 

 

3.2.3糟心的CronRunBehavior源码

 

以上是关于ThinkPHP怎么做定时任务的主要内容,如果未能解决你的问题,请参考以下文章

请教thinkPHP 定时任务Crons怎么调用

thinkphp3.2.3 定时任务重新加载, 无法加载新的定时任务的问题

ThinkPHP实现定时任务

thinkphp6定时任务,php定时器EasyTask

ThinkPHP实现定时任务

Thinkphp6实现定时任务功能