霜天部落 | 专注PHP研发,研究LAMP高性能架构部署与优化

PHP用ignore_user_abort函数实现计划任务

我们可以使用ignore_user_abort函数来实现像linux中的cron一样的计划任务,下面一起来看下该如何来实现。

我们先看一下PHP手册对此函数的介绍:

Description

int ignore_user_abort ([ string $setting ] )

Sets whether a client disconnect should cause a script to be aborted.

解释:无论客户端是否关闭浏览器,下面的程序都会执行

Parameters

setting
If not set, the function will only return the current setting.

解释:接受一个参数,来决定是否启用ignore_user_abort的功能

Return Values

Returns the previous setting, as a boolean.

解释:返回一个bool值

以上的这个函数的说明。如果要显示计划任务,则还需要另外一个函数:set_time_limit。通过set_time_limit(0)可以设置PHP程序的执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去。

下面我提供一个例子:

<?php

ignore_user_abort(); // run script in background
set_time_limit(0); // run script forever
$interval=60*15; // do every 15 minutes…
do{
// add the script that has to be ran every 15 minutes here
// …
sleep($interval); // wait 15 minutes
}while(true);
?>

PHP程序加上这个函数后,即使在浏览器关掉的时候,程序没有执行完它还会继续执行,直到执行完。