你好是PHP:curl_multi_select函數適合每隔10秒執行一次curl_exec嗎?我想每10秒執行一次culr_exec並在完成時收集結果。我無法弄清楚如何開始。如何每10秒執行一次curl_exec並在完成時收集結果
回答
我傾向於思考curl_multi_select()是不是你想在這裏使用。從該文檔:
INT curl_multi_select(資源$ MH [,浮子$超時= 1.0])
塊,直到有在任何curl_multi連接的活性。
mh - 由curl_multi_init()返回的cURL多重句柄。
timeout - 等待響應的時間,以秒爲單位。
curl_multi_init()是專爲「並行處理多個cURL句柄」而設計的,這不是你要找的。
如果您需要處理curl_exec()每10秒,你有幾個選擇:
- 使用調度工具來執行腳本每10s和存儲數據。 (cron也許)
- 在手動運行的bash或python中編寫一個包裝腳本,該腳本每10秒啓動一次php腳本。
您可以在PHP中使用後者,但是您必須增加最大執行時間,因爲您會以相對較快的速度達到最大執行時間。
如果某個請求可能需要10秒以上的時間,curl_multi_select就是要走的路。這將需要並行打開多個請求。當然這個功能只是解決方案的一部分。我期望如果通過NULL,超時值爲零。至少select()函數以這種方式工作 – hek2mgl
如何安全地在PHP中調度請求,我的意思是有些請求可能需要超過10秒而其他請求不到。所以要求完成答案。 –
@ClaudioFerraro我不會從頭開始爲你寫的。我已經給你足夠的開始和一些事情嘗試。 「詢問代碼的問題必須對所解決的問題有一個最基本的理解,包括嘗試的解決方案,爲什麼他們不工作,以及預期的結果。」 http://stackoverflow.com/help/on-topic –
- 1. 每10秒執行一次代碼,但在0秒後啓動
- 2. Android - 如何使用ScheduledExecutorService每10秒執行一次吐司?
- 3. 每秒執行一次任務,完成後執行另一個任務
- 4. Android:每10秒完成一次任務(正好)
- 5. 如何異步調用10個函數並收集所有結果並知道何時完成?
- 6. 每10秒運行一次node.js腳本
- 7. 每10秒隨機顯示一次mysql的查詢結果
- 8. 如何每10秒刷新一次網格而不凍結Winform
- 9. 如何遍歷結果集並執行每條語句? (MySQL的)
- 10. 如何遍歷結果集並在結果集中返回每行N行
- 11. 如何運行一個python腳本每秒10次
- 12. 如何使用boost asio每隔10秒進行一次async_connect?
- 13. 每三秒執行一次AsyncTask
- 14. 每20秒執行一次php函數
- 15. 每x秒執行一次動作delphi
- 16. Laravel schedular:每秒執行一次命令
- 17. 每5秒執行一次腳本
- 18. launchd.plist每10秒運行一次而不是一次
- 19. 如何在libgdx中每60秒執行一次更新
- 20. 在Java中,如何每X秒執行一次代碼?
- 21. 如何在android中每30秒執行一次查詢?
- 22. 如何在Android上每兩秒鐘執行一次Java函數?
- 23. 如何在HTML中每10分鐘執行一次Javascript?
- 24. 在jQuery中每隔幾秒執行一次執行?
- 25. 如何讓結果集中的每一行都返回多次?
- 26. 每x秒運行一次腳本而不等待它完成
- 27. 在Arduino上每y秒執行一次x秒的功能
- 28. 收集來自並行Celery任務執行的結果
- 29. 每10秒啓動一次服務
- 30. SVG/D3 - JSON每10秒刷新一次
應該是可能的。很難解釋而沒有給你完整的答案。你知道'select()'系統調用是如何工作的嗎? – hek2mgl
我知道這個系統有點。我嘗試改變超時時間,但它沒有效果,因爲只要資源釋放一個新的curl_exec就會被執行,並且這可能會在不到10秒的時間內發生。在循環中放置一個Sleep(10)甚至沒有幫助,不知何故,我總是從curl_exec得到0響應,不知道爲什麼。 –
這將是可能的在PHP中,但它將是一個黑客攻擊。如果你有選擇,那麼使用支持python這樣的線程的語言或者pthread php擴展 – hek2mgl