【问题标题】:file_get_contents/curl blocks other clientsfile_get_contents/curl 阻止其他客户端
【发布时间】:2013-10-21 18:24:25
【问题描述】:

我使用 file_get_contents/curl 从我的 php 脚本访问另一台服务器上的一个 API。此 API 速度不快,最多可能需要 10 秒才能响应。

当我尝试在我的网站上同时打开 2 个使用此 API 的页面时,它们会一一加载,即我需要等待第一个加载,然后服务器才会开始向服务器请求第二个页面。

我在linux下使用Apache2和php。 如何避免这种行为,我不想阻止其他客户端,而其中一个客户端访问此 API。需要帮助!

谢谢。

【问题讨论】:

  • 没有会话可以同时打开两次。当您想为另一个进程或线程释放会话时,请使用 session_write_close();。
  • 天哪,非常感谢!你拯救了我的一天:)))
  • 我只是猜到了……^^ 这是常见的问题。是的,那个很难用谷歌搜索……
  • 谢谢@bwoebi!

标签: php apache curl


【解决方案1】:

是的。

有这个 PHP 库:http://code.google.com/p/multirequest/(它是一个多线程 CURL 库)。

作为另一种解决方案,您可以编写一个脚本,使用支持线程的语言(如 Ruby 或 Python)来执行此操作。然后,只需使用 PHP 调用脚本。看起来很简单。

【讨论】:

  • bwoebi 描述了正确的解决方案。这似乎很难在谷歌和文档上找到。
  • 另外,它不使用多线程根本,它使用非阻塞 i/o ...
猜你喜欢
  • 2015-09-10
  • 2013-11-17
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
相关资源
最近更新 更多