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 相关文章推荐
PHP - Html Transfer Code
Oct 09 PHP
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
PHP经典面试题集锦
Mar 19 PHP
PHP 生成微信红包代码简单
Mar 25 PHP
laravel框架查询数据集转为数组的两种方法
Oct 10 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 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中instanceof 与 is_a()区别分析
2015/03/03 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
input框中的name和id的区别
2016/11/16 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
Python中IPYTHON入门实例
2015/05/11 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python中如何导入类示例详解
2019/04/17 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
Django URL参数Template反向解析
2020/11/24 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
优秀的毕业生的自我评价
2013/12/12 职场文书
物业管理专业求职信
2014/06/11 职场文书
招标承诺书
2014/08/30 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL