我有一個php腳本,它從mysql數據庫查詢客戶列表,並轉到每個客戶的IP地址,並獲取一些信息,然後顯示在網頁上。是否有某種可用於PHP的線程?
但是,如果客戶端數量太高,則需要很長時間。無論如何,我可以並行發送那些url請求(file_get_contents)嗎?
我有一個php腳本,它從mysql數據庫查詢客戶列表,並轉到每個客戶的IP地址,並獲取一些信息,然後顯示在網頁上。是否有某種可用於PHP的線程?
但是,如果客戶端數量太高,則需要很長時間。無論如何,我可以並行發送那些url請求(file_get_contents)嗎?
Lineke Kerckhoffs-Willems寫了一篇關於Multithreading in PHP with CURL的好文章。你可以用它來代替file_get_contents()
來獲得所需的信息。
非常適合我的需求。謝謝。 – roymustang86
我會使用類似Gearman的東西,將它們分配爲隊列中的作業,以便工作人員前來完成,如果需要縮放。
作爲另一種選擇,我也有written a PHP wrapper爲Unix at queue,這可能是適合這個問題。這將允許您安排請求,以便它們可以並行運行。過去,我成功地使用了這種方法來處理髮送批量電子郵件的問題,該電子郵件對您的腳本具有類似的阻塞問題。
腳本怎樣才能「去」所有這些客戶?那麼他們是不是服務器呢?我不確定你想在這裏創建什麼,但是如果所有的客戶都會定期推出自己的身份,這不是更好嗎?然後,當您請求時,PHP腳本已經可以使用這些數據。請詳細說明。 – GolezTrol
重複的http://stackoverflow.com/questions/209774/does-php-have-threading – Candide
@ Goleztrol-對不對的措辭。 它選擇該網址並在該網址上執行file_get_contents。它等待每個file_get_contents迴應。我想同時啓動所有這些功能,以便我可以及時獲得所有結果 – roymustang86