使用fastcgi_finish_request提高页面响应速度
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法.
合理利用这个特性可以大大提升用户体验,
<?php echo '例子:'; file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上传视频\n", FILE_APPEND); fastcgi_finish_request(); sleep(1); file_put_contents('log.txt', date('Y-m-d H:i:s') . " 转换格式\n", FILE_APPEND); sleep(1); file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取图片\n", FILE_APPEND); ?>
注意 :fastcgi_finish_request
虽然能够加速页面响应速度,但是由于程序可能有后续处理,会占用 php-fpm
的一个进程,那么当某一个请求被分配到这个请求上时,就必须等待其结束,这可能造成阻塞,也就是上面 achun
所说的现象。
如有问题请给我留言!