正常情况下,如果客户端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);
}