PHP时序计划任务实现的详细解决方案
1。将所有计划的任务保留到数据库中
2、每当用户执行或打开一个页面时,他按排序执行一个预定任务。也就是说,时间到了,它在用户进程中执行。
对于UCHOME程序任务代码是。 / / function_cron.php源
它不仅分析了计划任务的uchome代码,希望谁来分享它的好方法。
ignore_user_abort()
我以前已经仔细研究过计划任务,并认为有很多方法来规划任务。但最适合Web是触发式,它类似于DZ和PHPWind。大多数web应用程序也这样做。
1,为了提供稳定的触发、定时访问提供了crontab + wget或AB
2、使用nohup + PHP编写守护进程
3,用PHP直接编写一个死循环,并提供触发器。当你需要使用缓存或数据库来帮助发射周期,你必须使用睡眠或usleep控制触发频率。
4、crontab + PHP
5、网站的触发方式,也是不同的,一个是定时触发,一个是固定周期触发,DZ和PHPWind定时触发。
具体的实现思路是很容易想到的,没什么要说的。
主机是一定要使用crontab来执行命令行PHP
代码中不能写任何东西。
最好使用crontab。如果使用循环,最好将循环与特定的处理程序分开,否则内存将增加。
今天,我无意中发现这个功能在PHP手册ignore_user_abort。这个功能可以帮助我们实现同样的计划,计划在Linux。下面是如何实现它的一个视图。
首先,看看PHP手册对这个函数的解释。
描述
int({ }美元ignore_user_abort bool设置)
设置客户端断开是否会导致脚本被中止。
也就是说,不管客户端是否关闭浏览器,都会执行以下程序。
看看它的参数
参数
设置
如果未设置,则函数只返回当前设置。
这个函数接受一个参数来确定是否ignore_user_abort启用功能。
然后看看它的返回值:
返回值
返回以前的设置,作为布尔值。
在这里,我想回到以前的设置,这是布尔。这是值得的。考试结束后,这句话错了。返回是int类型。如果您不相信,您可以编写一个PHP文件来测试它。
那么我们如何使用PHP的这个功能来实现规划任务呢其他功能set_time_limit,这可以通过set_time_limit0设置。它可以将程序的运行时间设置为无限。PHP的默认运行时间是30秒。通过set_time_limit(0),该程序可以执行下去。它可以添加ignore_user_abort(1)和(0)set_time_limit程序执行之前,如何最终程序写的吗举个例子。
复制代码代码如下所示:
< PHP
ignore_user_abort(运行); / /脚本的背景
set_time_limit(0); / /运行脚本永远
$间隔= 30; /每隔15分钟做一次…
做{
$ FP = fopen('text3 .txt,);
fwrite($ FP,测试);
Fclose($ FP);
睡眠($间隔); /等待15分钟
}(true);
>