在php curl_multi期间,Apache变得没有响应

时间:2013-05-24 11:08:00

标签: php apache curl

我正在尝试在我的应用程序中使用多个线程卷曲请求。 问题是在curl_multi请求期间,应用程序变得没有响应(另一个请求只是等待它)。而且,在curl_multi期间没有人可以使用该网站。卷曲完成后,服务器回答正常。

1 个答案:

答案 0 :(得分:4)

这与curl_multi无关,而是与PHP会话有关。

你做了两个请求:

  1. 一个卷曲请求的人,持续很长时间
  2. 第二个请求。
  3. 第一个请求打开一个php会话并锁定它。然后它执行curl请求,这需要一些时间。

    第二个请求等待释放php会话,即它等待第一个请求完成。

    任何其他请求也等待发布php会话,这就是应用程序看起来没有响应的原因。

    解决方案是:

    • 避免长时间运行的脚本
    • 或在长时间运行的脚本之前关闭会话,方法是调用session_write_close()

    请参阅PHP download blocks rest of requests