我正在研究一個應用程序,該應用程序主要使用PHP編寫的利用亞馬遜的MWS API。這個應用程序允許亞馬遜賣家註冊,提供一些亞馬遜賣家的憑證,然後應用程序開始從亞馬遜下載這個用戶的訂單,將它們放入MySQL數據庫。什麼是在PHP中運行異步函數的最有效方法?
我已經構建了使用具有多個函數的腳本將數據準確地同步到數據庫的方法,但注意到這需要太長時間。該腳本簡單循環遍歷數據庫中的所有用戶,並一次迭代所有訂單。目前,只有5個測試用戶,時間是可行的,但我正在尋找一種更可擴展的方法。想想每次同步運行的500個用戶。太久了!
我對PHP很陌生,特別是從它運行異步過程。我發現我可以做到這一點的唯一方法是擁有一個初始腳本,用於查找數據庫中的所有用戶,併爲每個用戶生成一個同步腳本,然後釋放它。我不喜歡這個想法,因爲如果我確實有500多個用戶,我每晚同步將包含500個衍生的PHP腳本實例。
以前有沒有人做過類似的事情?如果是這樣,我很想聽聽如何更好地使此同步更有效。
我從來沒有聽說過HTTPRequestPool類,謝謝!但是,從這我可以弄清楚如何讓它發送異步HTTP請求,但我也需要處理我分別從這些檢索到的每個結果。這可以做到嗎? –
我相信如此。你有閱讀文檔嗎?特別是檢查「getFinishedRequests」方法 - http://www.php.net/manual/en/function.httprequestpool-getfinishedrequests.php – rICh