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,而不会导致页面阻塞。

none

发表评论

0条评论

设置
配色方案

布局

现在购买