有关session阻塞问题
来源:互联网 发布:kettle java脚本 编辑:程序博客网 时间:2024/05/18 15:23
最近遇到一个问题,有关session阻塞的问题。是PHP请求API接口,接口反应时间慢,导致其他页面必须等待接口返回后才能执行,查来查去最终找到了是session问题。
当然这种问题只有在同一个浏览器下才会发生。
网上查找资料得知,由于PHP的Session信息是写入文件的,1个客户端占有1个session文件。因此,当 session_start被调用的时候,该文件是被锁住的,而且是以读写模式锁住的(因为程序中可能要修改session的值),这样,第2次调用 session_start的时候就被阻塞了。
查了PHP的手册,发现一个session_write_close函数,作用是Write session data and end session,也就是写session的数据,同时关闭这个session。
因此,我们可以在用完session之后,调用这个函数关闭session 文件即可解除锁定。
一般,session是用来记录用户身份信息的,以便PHP进行身份认证,因此完全可以将session的读写放在页面刚开始执行的时 候,在执行完以后,马上调用session_write_close函数即可。
在thinkphp框架中session方法中就已经设计好了
session('[start]');
session('[pause]');
session('[destroy]');
session('[regenerate]');
具体方法信息可以查看框架中的方法。
当然这种问题只有在同一个浏览器下才会发生。
网上查找资料得知,由于PHP的Session信息是写入文件的,1个客户端占有1个session文件。因此,当 session_start被调用的时候,该文件是被锁住的,而且是以读写模式锁住的(因为程序中可能要修改session的值),这样,第2次调用 session_start的时候就被阻塞了。
查了PHP的手册,发现一个session_write_close函数,作用是Write session data and end session,也就是写session的数据,同时关闭这个session。
因此,我们可以在用完session之后,调用这个函数关闭session 文件即可解除锁定。
一般,session是用来记录用户身份信息的,以便PHP进行身份认证,因此完全可以将session的读写放在页面刚开始执行的时 候,在执行完以后,马上调用session_write_close函数即可。
在thinkphp框架中session方法中就已经设计好了
session('[start]');
session('[pause]');
session('[destroy]');
session('[regenerate]');
具体方法信息可以查看框架中的方法。
0 0
- 有关session阻塞问题
- 关于SESSION 阻塞问题
- php的session阻塞问题
- 142.PHP session 阻塞问题
- 有关Session超时的问题!
- 有关Session的相关问题
- PHP的Session阻塞问题探讨
- ajax 做 长轮序 session 阻塞问题
- PHP Session并发操作阻塞问题
- PHP session阻塞页面的问题
- 有关Asp.net中Session验证问题
- 有关session生命周期如何设置的问题
- 有关no Session问题的解决
- 有关session
- 有关socket阻塞模式与非阻塞模式的问题(急)
- 有关verilog中阻塞赋值和非阻塞赋值的问题
- php session读写锁引起的脚本阻塞问题
- tomcat 移植到weblogic session 为null 有关问题
- HDOJ 题目4858 项目管理(vector水)
- 单例模式与线程
- 处理python爬虫的timeout报错
- sql server2008 用户登录失败 错误18457 解决
- ffmpeg多线程转码
- 有关session阻塞问题
- 子元素和后代元素的区别
- VS2010 远程调试
- Android开发 使用 adb logcat 显示 Android 日志
- 如何删除多余系统引导项
- UNIX网络编程——揭开网络编程常见API的面纱【下】
- zoj 3640 概率dp
- 利用NSCache提升效率
- Python 代码风格