神奇的fastcgi_finish_request

标签: Technical Performance PHP | 发表时间:2011-04-12 22:14 | 作者:老王 Liút
出处:http://huoding.com

当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法。按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法。

听起来可能有些茫然,我们通过几个例子来说明一下:

<?php

echo '例子:';

fastcgi_finish_request();

echo 'To be, or not to be, that is the question.';

file_put_contents('log.txt', '生存还是毁灭,这是个问题。');

?>

通过浏览器(不是命令行!)运行此脚本,结果发现并没有输出相应的字符串,但却生成了相应的文件。由此说明在调用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);

?>

代码里用sleep模拟一些耗时的操作,浏览时没有被堵塞,程序却都执行了,具体看日志。

末了给您提个醒,Yahoo在Best Practices for Speeding Up Your Web Site中提到了Flush the Buffer Early,也就是利用PHP中的flush方法把内容尽快发到客户端去,虽然表面上它和本文介绍的fastcgi_finish_request有些许的类似,但本质上完全不同,别混淆了。

相关 [神奇 fastcgi finish] 推荐:

通过FastCGI Cache实现服务降级

- - IT技术博客大学习
标签:   FastCGI   降级.    在自然界中,很多生物面临生死考验的时候,往往会做出惊人的反应,其中最为大家熟知的当属壁虎,危难关头,与其坐以待毙,不如断尾求生,通过自残来换取活下去的希望. 对于互联网项目而言,同样存在着很多生死考验,比如:访问量激增;数据库宕机等等,此时如果没有合理的降级方案,那么结局必然是死路一条.

Android开发:如何按back键 彻底的关闭一个应用程序(调用finish()不太奏效)

- - CSDN博客推荐文章
在camera开发时,发现仅仅finish掉,用360一查,发现进程还是存在的. 经查资料, 一个Activity是有生命周期的,onCreate,onStart,onResume,onPause,onStop,onDestroy.... finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理;当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放.

神奇的fastcgi_finish_request

- Liút - 火丁笔记
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法. 按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法. 听起来可能有些茫然,我们通过几个例子来说明一下:.

神奇小屋

- Phineux - 疯狂的设计
神奇小屋,把每一寸的空间都用到了极致,porterfanna 建筑事务所设计:.

神奇的纸艺

- 孙想钱 - 译言-每日精品译文推荐
来源magic-paper-works 神奇的纸艺. 皮特·克莱森的纸艺利用了二位和三维的关系,他发现平面的纸张实体化简直是一个神奇的过程——或许称得上是魔术,因为整个过程很明显而且图形依然依附于原来的纸张上,而且不会掉下来. 他发现用A4纸做纸艺很有意思,因为A4纸很常见而且用于传媒和传递信息,从这方面讲,A4可以传达很多信息,而我们平时很少注意到A4纸实际重要性.

神奇的纸张

- apple - 玩意儿
日光浴室的杂志广告,本身是一张黑白的图画,当放在阳光底下就变成了多彩的风景了,采用了特殊的纸张和工艺,以宣传日光浴的不同享受. 本文原始链接:http://www.cngadget.cn/shikun-binu.html.

3D音频:神奇理发

- sku - 地理时间
音箱不行的,耳机要好点的,周围环境要安静. 开始吧,你将体验一个坐在理发店中的虚拟场景,尤其是剪刀和剃刀在右耳的时候,超紧张吧…. 继续阅读全文>> 3D音频:神奇理发. © fives for 地理时间, 2011. | 原文链接 | No comment | @地理时间 | 图片托管于又拍网.

【短文】神奇的选择

- 公子小白 - 左岸读书_blog
易睡寒、郭梅梅、高球三位同学,请总结下文的中心思想. 唐朝王维,幼时博览群书,九岁可以挥笔作诗. 搁到现在,最次也能当个艺术培训学校校长. 王维每日出入王侯将相家中,与之诗酒 唱和,其乐无穷. 王维投桃报李,先后写下了《从岐王过杨氏别业应教》、《从岐王夜宴卫家山池应教》、《敕借岐王九成宫避暑应教》等诗,使岐王李隆范名留千古.

再说TCP神奇的40ms

- - C++博客-牵着老婆满街逛
转载自:https://www.qcloud.com/community/article/186. TCP是一个复杂的协议,每个机制在带来优势的同时也会引入其他的问题. Nagel算法和delay ack机制是减少发送端和接收端包量的两个机制, 可以有效减少网络包量,避免拥塞. 但是,在特定场景下, Nagel算法要求网络中只有一个未确认的包, 而delay ack机制需要等待更多的数据包, 再发送ACK回包, 导致发送和接收端等待对方发送数据, 造成死锁, 只有当delay ack超时后才能解开死锁,进而导致应用侧对外的延时高.

神奇的土地孕育神奇的人民

- zhouqi - 牛博山寨 编辑推荐
转@KIWIN 盖满全套能卖3000元呢,到处都是敲章黄牛,当初没有限额规定,法国馆有个黄牛一下拿出400本要求盖章,工作人员都快哭了.