php计划任务之ignore_user_abort函数实现方法

php计划任务之ignore_user_abort函数实现方法

本文主要介绍了php调度任务ignore_user_abort函数的实现方法,以实例的形式分析了php调度任务ignore_user_abort函数的实现方法,并对ignore_user_abort函数的用法进行了详细的分析。有需要的可以参考一下。

本文结合实例描述了php规划任务ignore_user_abort函数的实现方法。分享给你,供你参考。具体分析如下:

PHP不会检测用户是否已经断开连接,直到它试图向客户端发送信息。简单地使用echo语句并不能保证信息被发送。使用以下代码查看flush()函数:

复制代码如下:服务器端编程语言(Professional Hypertext Preprocessor的缩写)

ignore_user_abort(真);

set _ time _ limit(0);

while(1) {

$fp=fopen(time_task.txt , a );

$str=date(Y-m-d h:i:s )。NR’;

fwrite($fp,$ str);

fclose($ FP);

睡眠(5);//每半小时执行一次。

}

定义和用法

函数的作用是:设置从客户端断开连接是否会终止脚本的执行。这个函数返回由用户中止设置的前一个值(一个布尔值)。

语法:ignore_user_abort(setting)

参数

形容

环境

可选。如果设置为true,将忽略与用户的断开连接。如果设置为false,脚本将停止运行。如果未设置该参数,将返回当前设置。

提示和注释

注释:

PHP不会检测用户是否已经断开连接,直到试图向客户端发送信息。简单地使用echo语句不能保证信息的发送。请参见flush()函数。

以下是补充资料

让我们从一个简单的例子开始:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

//php定期调度任务

ignore _ user _ abort();//该函数设置从客户端断开连接是否会终止脚本的执行。

set _ time _ limit(0);//将脚本的执行时间设置为无限长。

$ interval=30

做{

$fp=fopen(text3.txt , a );

fwrite($fp, test );

fclose($ FP);

睡眠($间隔);//该函数将代码执行延迟几秒钟

}while(真);

首先,运行程序,然后关闭页面。程序仍在运行,test将每30秒填充一次text3.txt文件。

最后,介绍php手册中的相关知识:

1.连接处理:

在PHP内,系统维护连接状态,其状态有三种可能的情况:复制代码如下:

0正常(正常)

1中止(异常退出)

2超时(超时)

当PHP脚本在正常状态下正常运行时,连接是有效的。当远程客户端断开连接时,中止状态的标志将被打开。远程客户端连接的中断通常是由用户单击停止按钮引起的。当连接时间超过PHP的时间限制时,超时状态标志将被打开。

您可以决定当客户端断开连接时脚本是否需要退出。有时让脚本完全运行是很方便的,即使没有远程浏览器接受脚本的输出。默认情况下,当远程客户端连接中断时,脚本将退出。这个过程可以通过php.ini的ignore_user_abort或者Apache中对应的“php_value ignore_user_abort”和ignore_user_abort()函数来控制。会议设置。如果PHP没有被告知忽略用户的中断,除非通过register_shutdown_function()设置了关机触发函数,否则脚本会被中断。有了这个关闭触发器函数,当脚本在远程用户点击停止按钮后再次尝试输出数据时,PHP会检测到连接已经中断,并调用关闭触发器函数。

脚本也可能被内置的脚本定时器中断。的默认超时限制是30秒。这个值可以通过设置php.ini的max_execution_time或者Apache中对应的“php_value max_execution_time”参数来改变。conf设置或set_time_limit()函数。当计数器超时时,脚本会类似于上面的连接中断退出,之前注册的关机触发函数也会在此时执行。在这个shutdown trigger函数中,您可以通过调用connection_status()函数来检查超时是否会导致shutdown trigger函数被调用。如果超时导致调用关闭触发器函数,该函数将返回2。

注意:中止和超时状态可以同时有效。当告诉PHP忽略用户的退出操作时,这是可能的。PHP仍然会注意用户已经断开连接但脚本仍在运行的情况。如果达到运行时间限制,将退出脚本并执行设置的关机触发功能。此时,您会发现函数connection_status()返回3。

希望这篇文章对大家的php编程有所帮助。

php计划任务之ignore_user_abort函数实现方法