2013-10-14 72 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 ... –