fastcgi_finish_request
本问原地址
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。
fastcgi_finish_request的更多相关文章
- register_shutdown_function AND fastcgi_finish_request
在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能和应用场 ...
- php fastcgi_finish_request让你的程序由等待时间,瞬间完成,提高用户体验
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行 ...
- 使用fastcgi_finish_request提高页面响应速度
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法. 按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进 ...
- php分享三十三:用php中的register_shutdown_function和fastcgi_finish_request
已前言 在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能 ...
- 神奇的fastcgi_finish_request
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行 ...
- php-fpm:fastcgi_finish_request()
开始研究php-fpm, 在php-fpm的官网上发现一些很有用的功能,记录一下 1.支持php脚本执行慢的log记录 ; The timeout for serving a single reque ...
- 使用register_shutdown_function触发写日志,使用fastcgi_finish_request提高响应速度
公司内部的市场管理系统,一直是我一个人维护,最近老是有开发埋怨,内网的账号被人改了密码,账号被解绑了...哈的,错在这还不是一个完整的系统,既没有严格的权限也没有做操作日志呀... 权限现在是准备做在 ...
- Fastcgi_Finish_Request 提高页面响应速度
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行 ...
- 妙用php中的register_shutdown_function和fastcgi_finish_request
前言 在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能和 ...
随机推荐
- golang包快速生成base64验证码
base64Captcha快速生成base64编码图片验证码字符串 支持多种样式,算术,数字,字母,混合模式,语音模式. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.Base6 ...
- 从云主机上下载文件到本地+获取外网地址(linux & Windows)
云主机上下载有集中方法,腾讯论坛有一遍文章:向云服务器上传下载文件方法汇总 货比三家,最终还是选择了rsync 下载代码如下 rsync ubuntu@123.207.251.217:/var/www ...
- NOIP模拟题 管道
题目大意 给定$n$个点的无向图,求它的$Dfs$序方案数$n\leq 18$ 题解 状压$Dp+$记忆化搜索. 设$F_{i,now}$表示到达$i$其中$now$集合代表的点集已经遍历过,还需要遍 ...
- window如何分区
WD官方技术支持电话:800热线800-820-6682(请于周一至周五工作日期间使用固定电话拨打,不支持手机用户)手机用户请拨打400-627 6682. 链接:https://kuyusm.tma ...
- Spring aop 简单示例
简单的记录一下spring aop的一个示例 基于两种配置方式: 基于xml配置 基于注解配置 这个例子是模拟对数据库的更改操作添加事物 其实并没有添加,只是简单的输出了一下记录 首先看下整个例子的目 ...
- 参数化防SQL注入
private void AddStudent(){ string strName =txtName.Text.Trim(); string strPwd = txtPwd.Text.Trim(); ...
- nginx 端口转发
nginx 端口转发 默认nginx监听的端口是8080,想通过配置nginx访问80直接跳转到nginx,以下是配置方法: [root@localhost vhost]# cat tomcat.jo ...
- linux(6)
第十五单元 软件包的管理 [本节内容]1. 使用RPM安装及移除软件(详见linux系统管理P374)1) 掌握RPM的定义:RPM就是Red Hat Package Manger(红帽软件包管理工具 ...
- (转)Oracle存储过程中的事务
本文转载自:http://www.cnblogs.com/linjiqin/archive/2011/04/18/2019990.html 1.事务用于确保数据的一致性,由一组相关的DML语句组成,该 ...
- juc线程池原理(二):ThreadPoolExecutor的成员变量介绍
概要 线程池的实现类是ThreadPoolExecutor类.本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理. ThreadPoolExecutor数据结构 Thread ...