编写自定义会话处理程序时要遵循哪些最佳做法?我已经浏览了大多数现有的PHP框架,其中大多数似乎在处理会话ID更新时遇到并发问题和多个ajax请求。默认的PHP会话使用文件锁来管理它,但是如果我使用mysql来存储会话,似乎没有正确的方法来执行此操作。解决这个问题的最佳方法是什么?任何帮助表示赞赏。
答案 0 :(得分:1)
如果您不锁定会话文件/其他存储行,则可能会丢失数据。
简单场景(假设你完全放弃了锁定):
初始状态:有一个页面同时运行2个ajax请求,每个请求都会为会话添加另一个键:
结果:密钥丢失
所以 - 如果你想保证会话中的数据是一致的 - 你需要有一些同步机制。例如,可能是悲观锁定,但仍然无法完全避免锁定。