位置: 编程技术 - 正文
推荐整理分享简单介绍PHP非阻塞模式(php socket 非阻塞),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php的与或非,不是php定义的异常,php 非阻塞,简单介绍php非阻塞技术,简单介绍php非阻塞技术,php 非阻塞,简单介绍php非阻塞技术,php阻塞和非阻塞,内容如对您有帮助,希望把文章链接给更多的朋友!
非阻塞模式是指利用socket事件的消息机制,Server端与Client端之间的通信处于异步状态。
让PHP不再阻塞当PHP作为后端处理需要完成一些长时间处理,为了快速响应页面请求,不作结果返回判断的情况下,可以有如下措施:
一、若你使用的是FastCGI模式,使用fastcgi_finish_request()能马上结束会话,但PHP线程继续在跑。
这个例子输出结果可看到输出program start.后会话就返回了,所以debug那个输出浏览器是接收不到的,而log.txt文件能完整接收到三个完成时间。
二、使用fsockopen、cUrl的非阻塞模式请求另外的网址
利用cURL中的curl_multi_*函数发送异步请求
三、使用Gearman、Swoole扩展
Gearman是一个具有php扩展的分布式异步处理框架,能处理大批量异步任务;Swoole最近很火,有很多异步方法,使用简单。(尘缘注:号称重新定义PHP,把NodeJS喷得体无完肤。Swoole工具虽好,却感觉是扩展本身跟NodeJS没可比性)
四、使用redis等缓存、队列,将数据写入缓存,使用后台计划任务实现数据异步处理。
这个方法在常见的大流量架构中应该很常见吧
五、极端的情况下,可以调用系统命令,可以将数据传给后台任务执行,个人感觉不是很高效。
六、外国佬的大招,没看懂,php原生支持
process。
以上内容是小编给大家介绍的PHP非阻塞模式,希望对大家有所帮助!
CodeIgniter表单验证方法实例详解 本文实例讲述了CodeIgniter表单验证方法。分享给大家供大家参考,具体如下:1.在D:CodeIgnitersystemapplicationviews目录下写一个视图文件myform.phphtmlheadtitleMy
CodeIgniter针对数据库的连接、配置及使用方法 本文实例讲述了CodeIgniter针对数据库的连接、配置及使用方法。分享给大家供大家参考,具体如下:1.数据库:createdatabasetest;createtableusers(idintnotnull,nameva
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法 1.使用压缩与不使用压缩的HTTP输出比较2.开启gzip利用apachemod_deflatemodule开启gzip开启方法:sudoa2enmoddeflatesudo/etc/init.d/apache2restart关闭方法:sudoa2dismoddeflates
标签: php socket 非阻塞
本文链接地址:https://www.jiuchutong.com/biancheng/289868.html 转载请保留说明!友情链接: 武汉网站建设