本文分享一下php模拟linux crontab实现定时计划任务的方法。
PHP定时计划任务需要两个文件。
1、crontab.conf.php (配置文件)
<?php
//当为0时,关闭计划任务
return 1;
2、crontab.php (主体文件)
<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval = 60 * 3;// 每隔3分钟运行
$i = 0;
do {
$nowTime = date("Y-m-d H:m:s");
$run = include 'crontab.conf.php';
if (!$run) {
file_put_contents("crontab_task.log", "==计划任务已结束 $nowTime==rn", FILE_APPEND);
die('Job has ended.');
}
//此处放要执行的代码
sleep($interval);// 等待3分钟
$data = "$i>计划任务正在运行中...(运行状态:$run) $nowTimern";
file_put_contents("tasktest.txt", $data, FILE_APPEND);
$i++;
} while (true);
主要改变 crontab.conf.php 中 return 0 即可实现控制这个计划任务的关闭。
注意:当php服务关掉之后该计划任务脚本也会停掉并且不会自动重启。