今天在开发碰到个棘手的问题 。

当异步请求后台处理一个大数据量操作时  请求其他控制器都没返回信息了。。起初以为是Ext 框架设置了ajax同步造成的。

后来发现时session 死锁造成其他控制器在等待session 完成后才能操作。(主要是用户登录判断需要更新session)

当PHP 处理大数据量操作时 不能及时操作完成 这时候又有访问其他控制器或者

异步请求时候会造成session 死锁现象

和同事探讨了下 可使用 session_write_close() 解决此问题

Descriptionvoid session_write_close ( void )
End the current session and store session data.Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

功能: 结束当前的session 操作 保存session 数据

说的很明白了, 当脚本请求没有调用session_write_close(); 时虽然 session  的数据是存储住了。但是 session Date(也就是session 文件) 是锁住状态

是为了避免 其他应用此时操作session 造成不必要后果   当使用框架时 不同文件可能会不停地操作session 为了不造成其他操作对当前session 的死锁等待

可使用此函数...

转载于:https://www.cnblogs.com/glory-jzx/archive/2012/11/16/2772656.html

PHP 解决session 死锁相关推荐

  1. razor 怎样使用session变量_Nginx负载均衡解决session一致性问题

    [145] 前言: http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你. 那么,在一些场合,确实需要服务器记住当前用户怎么办?比如用户登录邮箱后 ...

  2. java 死锁 解决_Java死锁故障排除和解决

    java 死锁 解决 JavaOne年度会议的一大优点是主题专家介绍了几个技术和故障排除实验室. 这些实验室之一尤其引起了我的关注:Java冠军Heinz Kabutz提出的" HOL650 ...

  3. Spring Boot 2.X + Shiro 优雅解决 session 跨域问题

    一.跨域问题 web 开发中跨域问题是一个老生常谈的问题,根本原因是浏览器基于安全原因考虑对非同源的脚本操作和 ajax 访问进行了限制,介绍的文章网上有很多,这里不做赘述. 二.解决方案 跨域问题有 ...

  4. 【Mysql】太可怕了,跟踪及解决Mysql死锁原来可以这么简单

    文章目录 1.存储引擎 2.锁粒度 3.不同粒度锁的比较 4.行锁 5.表锁 6.事务 事务的ACID 事务的隔离级别 事务并发存在问题 使用四种隔离级别来解决事务并发 设置Mysql数据的隔离级别 ...

  5. mysql 索引 死锁,由不同的索引更新解决MySQL死锁套路

    前几篇文章介绍了用源码的方式来调试锁相关的信息,这里同样用这个工具来解决一个线上实际的死锁案例,下面小编来简单介绍下 前几篇文章介绍了用源码的方式来调试锁相关的信息,这里同样用这个工具来解决一个线上实 ...

  6. 分布式锁能解决 mysql死锁吗_mysql死锁问题分析

    图4 聚簇索引和二级索引 下面分析下索引和锁的关系. 1)delete from msg where id=2: 由于id是主键,因此直接锁住整行记录即可. 图5 2)delete from msg ...

  7. spring-session-data-redis解决session共享的问题

    分布式系统要做到用户友好,需要对用户的session进行存储,存储的方式有以下几种: 本地缓存 数据库 文件 缓存服务器 可以看一些不同方案的优缺点 1.本地机器或者本地缓存.优点:速度快  缺点:服 ...

  8. troubleshoot之:用control+break解决线程死锁问题

    简介:如果我们在程序中遇到线程死锁的时候,该怎么去解决呢? 本文将会从一个实际的例子出发,一步一步的揭开java问题解决的面纱. 简介 如果我们在程序中遇到线程死锁的时候,该怎么去解决呢? 本文将会从 ...

  9. 银行家算法:解决多线程死锁问题

    死锁: 死锁产生的现场:当A进程P S2信号量而B进程P S1信号量时就会产生死锁,因为S2信号量需要B进程释放,而S1信号量需要A进程释放,因此两个进程都在等相互的资源,造成死锁. 死锁产生的条件: ...

最新文章

  1. ConcurrentHashMap源码解析(1)
  2. 静态方法与单例模式的区别以及为什么要用单例模式而不是静态方法
  3. Java Bag模型模拟
  4. [家里蹲大学数学杂志]第405期中国科学院数学与系统科学研究院2015年夏令营分析与代数试题...
  5. 工程师的基本功是什么?如何练习?听美团技术大咖怎么说
  6. php 原理 阮一峰,全文Feed的终极解决方案
  7. 别整那些花里胡哨的,女孩子喜欢简单直接的男生
  8. python与java区别-Java与Python到底有什么区别和共同点详细对比
  9. window下spark的安装和开发环境配置
  10. java 中== equals hashcode源码剖析
  11. linux硬盘只读脚本 zabbix,Zabbix如何设置脚本告警
  12. linux 进程 cpu 100,清理linux中占用CPU 100%的病毒
  13. hive出现内存溢出_hive问题处理
  14. Hibernate Search 教程
  15. 苹果商店打不开怎么办_苹果手机下载迅雷方法,iOS迅雷安装,怎么安装苹果版迅雷...
  16. 树莓派python虚拟环境的设置与使用
  17. 【bat】bat批处理 用作为当前目录的以上路径启动了 CMD.EXE。 UNC 路径不受支持。默认值设为 Windows 目录。无法执行共享目录bat脚本处理方法
  18. ES中的Multi_match深入解读:best_fields、most_fields、cross_fields用法一览
  19. 【LeetCode刷题】1619. 删除某些元素后的数组均值
  20. vue报错Navigating to current location (/login) is not allowed

热门文章

  1. inteliJ maven 打包时把依赖的包一起打
  2. qt获取桌面路径(暂定应用Windows)
  3. redis安装配置参考
  4. tortoise svn 请求的名称有效,但是找不到请求的类型的数据
  5. 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》
  6. 数组对象 按某个属性排序
  7. 第一讲 linux简介
  8. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新2)...
  9. 第十五讲 循环体for基础
  10. XSpreadsheet-在线表格插件