当有请求进入并尝试启动会话时,php将检查当时是否正在使用同一会话。如果是这样,则新请求必须等到另一个请求完成或释放会话锁。
您的情况如下:
- 第一个请求到达,锁定会话
- 第二个reauest到达,尝试锁定会话,必须等待
- [5秒睡眠]
- 第一个请求完成,释放锁
- 第二个请求启动,实现会话锁定
- [5秒睡眠]
- 第二个请求完成
默认情况下,symfony在每个请求的开始处启动会话。
在纯PHP中,您可以使用释放会话文件的锁
session_write_close()。Symfony具有sfUser类,该类包装了会话功能,您需要调用它的
shutdown()方法。
请注意,如果稍后在该请求中修改任何会话数据,则将不会保存该数据。
有关更详细的说明,请阅读PHP
Session编写锁定以及如何在symfony中处理锁定。



