PHP非阻塞模式 (转自 尘缘)
2016-03-02 09:59
459 查看
让PHP不再阻塞当PHP作为后端处理需要完成一些长时间处理,为了快速响应页面请求,不作结果返回判断的情况下,可以有如下措施:
一、若你使用的是FastCGI模式,使用fastcgi_finish_request()能马上结束会话,但PHP线程继续在跑。
帮助
二、使用fsockopen、cUrl的非阻塞模式请求另外的网址
帮助
帮助
Gearman是一个具有php扩展的分布式异步处理框架,能处理大批量异步任务;
Swoole最近很火,有很多异步方法,使用简单。(尘缘注:号称重新定义PHP,把NodeJS喷得体无完肤。Swoole工具虽好,却感觉是扩展本身跟NodeJS没可比性)
四、使用redis等缓存、队列,将数据写入缓存,使用后台计划任务实现数据异步处理。
这个方法在常见的大流量架构中应该很常见吧
五、极端的情况下,可以调用系统命令,可以将数据传给后台任务执行,个人感觉不是很高效。
帮助
七、安装pcntl扩展,使用pcntl_fork生成子进程异步执行任务,个人觉得是最方便的,但也容易出现zombie process。
帮助
相关文章推荐
- php编辑ppt方法 PHPPowerPoint类 学习
- ubuntu执行curl_init报错
- PHP下的MVC
- PHP第五课 自己主动类型转换与流程控制
- thinkphp中的session()方法
- PHP函数
- php缓存技术基础知识
- PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
- 143 php 接口
- PHP团队编码质量提升之道
- php中for循环中变量没有清空导致的bug
- 深入浅析用PHP实现MVC
- PHP MVC框架路由学习笔记
- Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
- freeSHHd+puttygen搭建Sftp
- PHP环境问题
- phpqrcode
- 如何用php下载文件?
- thinkphp使用问题
- thinkphp路径引用问题