2013-07-16 58 views
1

我正在編寫一個從Internet上下載圖片的PHP腳本。由於數據量巨大,腳本的執行時間從10-15分鐘不等。有沒有更好的方法來處理這種情況,還是我應該簡單地執行腳本並讓它花費時間?具有大量執行時間的PHP腳本

+0

,如果你要監視它,不管是依賴於shell腳本它是面向用戶的 – user20232359723568423357842364

+1

而不是從命令行運行它?更多上下文將有所幫助...... –

+0

從命令行運行它(它也可以監視它),並將超時設置爲0. –

回答

1

您的腳本似乎本質上是I/O綁定的。沒有獲得更多的帶寬,你幾乎沒有辦法。

您可以通過增加交互性來改善用戶體驗(如果有的話)。例如,您可以保存文件名打算在會話中下載,並在每個文件後重新顯示頁面(並刷新它,或去AJAX),顯示預期完成時間,當前速度和完成百分比。

基本上,腳本會保存會話中的URL數組,並在每次迭代時彈出其中的一部分並下載它們,也許檢查它花費的時間(如果您在半秒內下載一個文件,這是值得的下載另一個)。

由於該腳本被執行多次,不僅僅是一次,您不必擔心它的超時。但是,您必須處理用戶中止整個過程的可能性。

1

如果沒有任何帶寬限制,我會推薦多線程來更快地完成它。但最接近的東西是process control

或者前一段時間我寫了一個類似的刮板,並更快地執行它我使用exec函數來實例化同一個文件的多個線程。因此您還需要創建一個存儲庫和鎖定機制。聽起來很髒,但很有用!

0

如果優化是值得投資時間,如果執行時間大部分是在圖像處理中消耗掉然後調用該旋轉幾道工序可能是一個選擇