

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# MNP 任務的任務生命週期
<a name="job-lifecycle"></a>

當您提交多節點平行任務時，任務會進入 `SUBMITTED` 狀態。然後，任務會等待任何任務相依性完成。任務也會移至 `RUNNABLE` 狀態。最後， AWS Batch 會佈建執行任務所需的執行個體容量，並啟動這些執行個體。

每個多節點平行任務皆包含**主要節點**。主節點是單一子任務，可 AWS Batch 監控 來判斷所提交多節點任務的結果。主要節點最先啟動，然後會移至 `STARTING` 狀態。`attemptDurationSeconds` 參數中指定的逾時值會套用至整個任務，而非節點。

當主節點在節點的容器執行後達到 `RUNNING` 狀態時，會啟動子節點，也會移至 `STARTING` 狀態。子節點會以隨機順序出現。子節點的啟動時間或順序並不固定。為了確保任務的所有節點在節點的容器執行後都處於 `RUNNING` 狀態，您的應用程式程式碼可以查詢 AWS Batch API 以取得主節點和子節點資訊。或者，應用程式程式碼可以等到所有節點上線，再開始任何分散式處理任務。主要節點的私有 IP 地址，在每個子節點中可做為 `AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS` 環境變數使用。您的應用程式程式碼可以使用此資訊，對各任務之間的資料進行協調和通訊。

隨著個別節點結束，它們將移至 `SUCCEEDED` 或 `FAILED`，這取決於它們的結束程式碼。如果主要節點結束，則任務會視為完成，而所有子節點也會停止。如果子節點死亡， AWS Batch 不會對任務中的其他節點採取任何動作。如果您不希望任務繼續減少節點數量，則必須將此納入應用程式程式碼。這樣做會終止或取消任務。