有关session阻塞问题

   最近遇到一个问题,有关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]');
具体方法信息可以查看框架中的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值