php session锁阻塞php请求

学习笔记 无标签 2020-02-20 阅读:199

前言

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

生成海报
版权声明

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://www.fxnetw.com/62.html (转载时请注明本文出处及文章链接)


如果觉得我的文章对你有用,请随意赞赏

0条评论