一千萬個為什麽

搜索

並行化相關的CI子作業



想象一下,你有資源來完成第1部分和第2部分的工作。

第2部分需要第1部分,但都需要相當長的時間。

而且,第2部分僅在最後才需要第1部分。

你是否會同時啟動它們,讓第2部分以某種方式等待第1部分的準備工作? (有可能是50/50,那時候就會準備好)

轉載註明原文: 並行化相關的CI子作業

一共有 2 個回答:

關鍵問題是 - 你能否教你的工作#2耐心等待工作#1完成,當它到達該依賴點並適當地進行或保釋取決於工作#1的結果?

如果你不能,那麽答案是否定的 - 你會因處理#1不完整而處理#2故障更多的麻煩,這個過程中噪音太大。

如果你能(如果你有足夠的資源) - 是的,通過一切手段 - 你的過程會更快。你甚至不需要CI系統對這種依賴關系的特別支持,它可能完全沒有意義,它只會將2個作業視為並行。

如果你的CI系統支持它,中間可能性將會錯開工作:開始工作#2,延遲時間足以使工作#2完成之前完成工作#2需要它在一個更舒適的範圍內說99%)。延遲將是明確的或經驗確定的,或者是固定的,或者采用更先進的方法,自動從歷史測量/統計(如果可用)獲得。

是的,如果你有資源,你應該並行地運行兩個部分。這意味著你的工作將以最慢的運行速度運行。這會強調優化最慢的運行部分。這可能與第2部分開始之前提前部分運行第1部分的過程一樣簡單。