我有一個200個命令的列表/隊列,我需要在Linux服務器的shell中運行。從Linux上的命令隊列並行處理(bash,python,ruby ... whatever)
我只希望一次運行最多10個進程(從隊列中)。一些過程需要幾秒鐘才能完成,其他過程需要更長的時間。
當一個進程完成時,我希望下一個命令從隊列中「彈出」並執行。
有沒有人有解決這個問題的代碼?
進一步闡述:
有200件作品需要做的,在某種隊列。我最多隻想做10件作品。當一個線程完成一項工作時,它應該向隊列請求下一項工作。如果隊列中沒有更多的工作,線程就會死掉。當所有線程都已經死亡時,意味着所有的工作都已完成。
我試圖解決的實際問題是使用imapsync
將200個郵箱從舊郵件服務器同步到新郵件服務器。某些用戶擁有大量郵箱並需要很長時間才能同步,其他用戶的郵箱非常小,並且可以快速同步。
這個工作正如我所希望的那樣。我寫了一些代碼來生成Makefile。它結束了超過1000行。謝謝! – mlambie 2009-01-21 07:01:36
+1這確實很聰明! – progo 2011-05-15 17:56:58