PHP 解决session死锁的方法


Posted in PHP onJune 20, 2013

今天在开发碰到个棘手的问题 。
当异步请求后台处理一个大数据量操作时  请求其他控制器都没返回信息了。。起初以为是Ext 框架设置了ajax同步造成的。
后来发现时session 死锁造成其他控制器在等待session 完成后才能操作。(主要是用户登录判断需要更新session)
当PHP 处理大数据量操作时 不能及时操作完成 这时候又有访问其他控制器或者
异步请求时候会造成session 死锁现象
和同事探讨了下 可使用 session_write_close() 解决此问题

Description
void session_write_close ( void )
End the current session and store session data.
Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

功能: 结束当前的session 操作 保存session 数据 
说的很明白了, 当脚本请求没有调用session_write_close(); 时虽然 session  的数据是存储住了。但是 session Date(也就是session 文件) 是锁住状态
是为了避免 其他应用此时操作session 造成不必要后果   当使用框架时 不同文件可能会不停地操作session 为了不造成其他操作对当前session 的死锁等待
可使用此函数...
PHP 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
PHP 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
Php图像处理类代码分享
Jan 19 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
Apr 26 PHP
解析PHP可变函数的经典用法
Jun 20 #PHP
使用PHP求两个文件的相对路径
Jun 20 #PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 #PHP
解析thinkphp中的导入文件标签
Jun 20 #PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 #PHP
解析用PHP实现var_export的详细介绍
Jun 20 #PHP
PHP 实现explort() 功能的详解
Jun 20 #PHP
You might like
php 面向对象的一个例子
2011/04/12 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
js继承的实现代码
2010/08/05 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
详解vue路由
2020/08/05 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python中表示字符串的三种方法
2017/09/06 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
Django后台admin的使用详解
2019/07/08 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
python 实现表情识别
2020/11/21 Python
PHP笔试题
2012/02/22 面试题
关于环保的演讲稿
2014/05/10 职场文书
年终工作总结范文2014
2014/11/27 职场文书
2015年副班长工作总结
2015/05/15 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技