fastcgi_finish_request
2016-03-10 15:14
531 查看
本问原地址
http://www.phpddt.com/php/fastcgi_finish_request.html
某些操作,如用户注册后邮件发送,记录日志等一些耗时操作可以转化为异步操作!当PHP运行在FastCGI模式是提供了fastcgi_finish_request()函数,看下面例子:
运行了次脚本,你会发现客户端输出上面一句话,fastcgi_finish_request()下面的内容并没有输出,但是却生成了文件,
如此说明了调用了fastcgi_finish_request后,客户端响应就已经结束,但与此同时服务端脚本却继续运行。这在一定程度上提高了响应速度,当然更科学的做法是:使用fastcgi_finish_request()函数集成队列消息,可以把消息异步发 送到队列。
fastcgi_finish_reques()函数的缺点:
1.PHP FastCGI 进程数有限,正在处理异步操作的php-cgi进程,无法处理新请求;
2.如果并发访问量较大,php-cgi进程数用满,新访问请求,将没有php-cgi去处理。Nginx服务器会出现: 502 Bad Gateway。
http://www.phpddt.com/php/fastcgi_finish_request.html
某些操作,如用户注册后邮件发送,记录日志等一些耗时操作可以转化为异步操作!当PHP运行在FastCGI模式是提供了fastcgi_finish_request()函数,看下面例子:
<?php echo '输出给客户端的内容'; fastcgi_finish_request(); sleep(3); echo '放心吧,这里的内容并不会输出'; file_put_contents('log.txt', '这是客户端响应结束后,服务器段脚本继续执行后生成');
运行了次脚本,你会发现客户端输出上面一句话,fastcgi_finish_request()下面的内容并没有输出,但是却生成了文件,
如此说明了调用了fastcgi_finish_request后,客户端响应就已经结束,但与此同时服务端脚本却继续运行。这在一定程度上提高了响应速度,当然更科学的做法是:使用fastcgi_finish_request()函数集成队列消息,可以把消息异步发 送到队列。
fastcgi_finish_reques()函数的缺点:
1.PHP FastCGI 进程数有限,正在处理异步操作的php-cgi进程,无法处理新请求;
2.如果并发访问量较大,php-cgi进程数用满,新访问请求,将没有php-cgi去处理。Nginx服务器会出现: 502 Bad Gateway。
相关文章推荐
- 序列sequence中的cache问题
- 交互设计的三大隐形机制:加载、刷新和缓存
- java中Queue的使用
- 基于modern ui for wpf的在线公开课平台 之二 创建我的modern ui程序
- 关于简单动画
- 开发错误记录3:问题 Error:failed to find Build Tools revision 23.0.2
- MathJax basic tutorial and quick reference
- (四) WebService-- SOAP UI 工具使用
- 太原UI设计师及web前端师郭文军讲网页中网格布局思路?
- JPA之@GeneratedValue注解
- Xcode 的蛋疼---描述文件出错
- arduino实验日记
- StringBuffer与StringBuilder的区别
- ios海哥开发笔记 (海哥原创,UILocalNotification本地通知的设置以及iOS9通知新特性 )
- TF/IDF(term frequency/inverse document frequency)
- <学习笔记> require模块(省市区下拉控件)
- NGUI具有流光效果的UISprite
- 《iOS Human Interface Guidelines》——Activity
- 基于modern ui for wpf的在线公开课平台 之一(说在前面)
- Java基础之GUI