会话锁定.session_write_close() 不起作用


Session lock. session_write_close() doesn't work

会话锁定的话题已经讨论了很多,我知道"魔术"session_write_close()函数。然而。。。

我有一个 Ajax 调用,它执行相当长的操作(需要几分钟)。为了获得进度信息,我每 10 秒运行一次 Ajax 调用。但是,我看到所有这些调用都处于挂起状态,并在主长呼叫完成后开始处理。在 Apache 状态下,我看到这些调用处于工作状态。

我在第一个脚本中session_write_close()调用。使用 Xdebug,我跟踪了脚本的执行,并确保session_write_close()作为最后一个会话相关的操作调用,之后不会调用任何start_session()。但是,所有后续呼叫仍然停滞不前。

我还能错过什么?

问题似乎与会话锁定无关。我注意到长时间运行的脚本与 MySQL 一起消耗 100% 的 CPU。因为它不是生产服务器,所以我只为虚拟机分配了一个 CPU。我已经将第二个 CPU 添加到虚拟机,问题已经消失了!