正常情况下,如果客户端client异常推出了,服务端的程序还是会继续执行,直到与IO进行了两次交互操作。

服务端发现客户端已经断开连接,这个时候会触发一个user_abort,如果这个没有设置ignore_user_abort,那么这个php-fpm的程序才会被中断。

 

检查方法:

1、根目录下添加test.php,加入以下代码

$log = ‘log.txt’;

file_put_contents($log, date(‘Y-m-d: H:i:s’).”n”, FILE_APPEND);

//取得当前连接的状态位
file_put_contents($log, ‘1 connection status: ‘ connection_status(). ” abort:” . connection_aborted() .”n”, FILE_APPEND);

for($i=2;$i<10;$i++){

// 延长 20 秒
sleep(20);

file_put_contents($log, date(‘Y-m-d: H:i:s’).”nn”, FILE_APPEND);

file_put_contents($log, $i.’ connection status: ‘ connection_status()”. ” abort:” . connection_aborted() .”n”, FILE_APPEND);

}

 

 

作者 admin

百度广告效果展示