php session锁阻塞php请求

编辑

前言

之前使用ci写一个批量二维码的PHP程序,发现识别过程,打开同站的其他页面卡死,找到是session锁的原因就没怎么处理了,最近在写工具站的时候,因为天气api请求有延迟导致跳转其他页面卡死打不开。

解决

当你在使用session_start()的时候,就会在session.save_path创建一个文件,里面保存序列化的session数据,操作系统会锁住session文件,session锁的作用在于防止
多个同事写入覆盖之前的数据。
你在使用一个页面并使用session时,如果第一个页面卡死 了,导致第二个页面打不开,例如

//test1.php
<?php
session_start();
$_SESSION['test'] = 123;
//session_write_close();
sleep(100);
?>
//test2.php
session_start();
print_r($_SESSION)
?>

我们可以通过使用session_write_close()来解决。
将session保存后关闭,经常我们在登录等写入session后可以关闭session,而不会导致页面阻塞。

本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!

评论区

暂无评论,快来抢沙发