工作執行及佇列作業
關於 Schematics 工作佇列
當使用者執行 Schematics 作業時,工作會排入共用服務佇列中。 工作會保留在佇列中,直到目標區域中有可用的工作者來執行工作為止。 排程原則會套用至工作,以確保服務可公平供所有使用者使用。
工作佇列的運作
視使用者提交的工作數目及執行工作的時間而定,消費者在執行工作之前可能會遇到延遲。 工作佇列可確保 Schematics 可公平供其所有使用者使用,而不論使用者所產生的負載為何。
範例
如果 user-1 有 20 個工作在佇列中等待,且 user-2 提交新的工作。User-2 工作等待到佇列中,在 user-1's 20 個工作之前,讓 Schematics 可公平供 user-1 和 user-2 使用。
工作何時進入擱置佇列?
下列是工作進入擱置佇列時的作業。
- 您的工作需要更多時間才能完成。 請檢查是否指定足夠的時間來執行工作。
- 工作執行所使用的映像檔不存在。 請檢查所提供的映像檔詳細資料是否存在,以及是否已指定名稱。
- 未指定工作所需的環境變數參數。 請檢查是否已定義環境變數。
- 傳遞給工作的指令或引數無效。 請檢查指定的引數旗標是否正確。
工作逾時
在工作區上規劃、套用及毀損之類的 Terraform 工作通常不會花費數小時以上的時間來佈建或取消佈建資源。 如果您同步佈建許多資源 (需要數小時),建議將資源分割成不同的工作區。Schematics 會將工作的執行時間限制為 24 小時。 在 24 小時之後,會終止工作,並將工作標示為 STOPPED,工作區會顯示 ACTIVE 或 INACTIVE。
在 24 hours 之後,會傳送岔斷信號來停止工作執行。 提供指令完成的寬限期 10 minutes。 如果在此時間內未完成,則會傳送結束信號,並終止工作。 停止工作之後會執行 Terraform 重新整理,以確保收集狀態檔及其他資料。
在工作中,會執行多個指令,例如 terraform init、terraform apply 及 terraform refresh。 如果工作在指令中逾時,所有其他指令只會讓額外的 10 minutes 完成。 在 10 minutes 結束時,會刪除每一個指令。
範例: 如果工作永遠停留在 Terraform 上,當指令停止時,以及您執行重新整理時。 如果重新整理也停留在 15 minutes 之後,則會執行結束 (kill)。
Terraform local exec 和 remote exec 的時間限制為 30 minutes,並在超出時終止工作執行。