2013-10-14 70 views
2

我使用file_get_contents/curl从我的php脚本访问另一个服务器上的一个API。此API速度并不快,最多可能需要10秒才能做出响应。file_get_contents/curl阻止其他客户端

当我尝试在我的网站上同时打开2个页面时,它使用这个API,他们一个接一个地加载,也就是说我需要等待第一个加载,然后服务器才会开始服务器请求第二个页面。

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

谢谢。

+5

没有会话可以同时打开两次。当你想释放另一个进程或线程的会话时,使用'session_write_close();'。 – bwoebi

+0

哦,伙计,非常感谢你!你救了我的一天:))) – let4be

+0

我只是猜对了...... ^^这是通常的问题。是的,这是一个很难谷歌... – bwoebi

回答

0

是的。

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

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

+0

bwoebi描述了正确的解决方案。这似乎很难找到谷歌和文档。 – let4be

+0

此外,它不使用多线程_at all_,它使用非阻塞I/O ... –