0
我目前正在Laravel(PHP)中構建一個用於從不同主機檢索價格的API。目前有756個不同的「硬幣」與不同的主機從中檢索價格。在PHP中安排大量任務的最佳方式
例如:硬幣X
主機1 主機2 主機3 - 高達30個主機
投幣ý
主機1個 主機4 主機5 - 高達30主機 等
這裏的問題是,理想情況下,每個硬幣應每10秒更新一次。這意味着每個硬幣需要調用其所有主機,計算平均價格,將價格保存在數據庫中,最後保存一個包含硬幣歷史記錄的JSON文件。 (也許這會更好地節省當前價格作爲JSON以節省一些時間)
我試圖把所有這些放在每個主機的類中,但執行時間太長(大約5分鐘使用CURL)。
我正在考慮爲每個硬幣創建一個任務(cron job)。這樣硬幣的'更新'可以同步(多個硬幣一次)。但我不能確定這將是最好的方式。
你們會推薦什麼樣的方法?所有提示都歡迎。
嗨海登,感謝您的支持。 1次請求的平均時間約爲。 500 - 700毫秒。如果我理解正確,你會建議把所有的請求放在CURL_MULTI中嗎?我還沒有測試過,但一個很好的電話。 – Thjeu
我沒有太多的關於CURL(只有簡單的請求),沒有谷歌搜索,我不知道它是否可以同時做同步請求。但是任何你能做到的方式都值得一試。您仍然可能需要一個cron作業來定期調用php腳本,無論您是在一個函數中執行多重調用還是多次調用函數。 –
哇,我剛剛用curl_multi運行整個過程並將時間縮減到12秒。這很棒。我可以從這裏進一步工作。非常感謝Hayden! – Thjeu