2012-01-10 145 views
3

對不起,如果這個問題看起來很模糊,我實際上是在問PHP中的Phing構建腳本,它是由Java的Ant構建腳本構建的,但我認爲其他語言的其他構建腳本可能執行相同的方式。在繼續之前,Build腳本是否等待命令行任務完成?

我已經構建了一個PHP腳本來優化圖像,您將腳本通過命令行傳遞到文件路徑到圖像文件夾,我的腳本將遞歸地遍歷所有圖像和文件夾的圖像,並通過運行圖像另外5個命令行工具根據它們是什麼樣的圖像來優化圖像。

  • 所有圖像經過ImageMagick的準確地確定他們是什麼樣的文件
  • JPG,JPEG圖像經過JPEGTran
  • GIF動畫的經過GIFsicle
  • 非動畫gif的得到轉換爲png與ImageMagick的並通過通過PNGcrush跑PNGcrush
  • PNG圖像去PNGquant,並PNGOUT

正如你能想象這需要大量的時間,從一些測試到目前爲止,它可能需要5-15秒的時間PER圖像運行適當的程序。

現在,我建立這個的全部原因是因爲它很棒,但其次我建立了一個命令行界面,只爲了能夠與我的Phing Build腳本一起使用它,我還沒有編寫它或者甚至真的學到了一切。

所以現在只是一個基本的問題,正如我所解釋的,它需要大量的時間來處理圖像,這些構建腳本通常會等待/暫停命令行過程,以在完成構建過程之前完成運行?

我真的很想確定,如果由於某種原因,我有一個文件夾裏有很多圖片(即100張圖片),可能需要很長時間才能處理,而且我不想讓任何東西超時,停止工作

+0

我會說它是可配置的:背景與否。所以等待或通過一個長期。 – hakre 2012-01-10 16:23:19

回答

0

是的,像螞蟻或phing一樣的構建工具通常等待命令執行完成。

爲了大幅提高速度,考慮到你的機器有多個內核,就是使用至少在ant中可用的並行執行。

相關問題