本文為您介紹任務未啟動並執行相關問題。
使用限制
僅DataWorks生產環境營運中心支援自動調度,請確認任務是否發行生產營運中心,任務發布,詳情請參見:發布任務。
任務運行條件
營運中心通過不同狀態標識區分狀態類型。
正常調度任務運行需要有多個條件:調度資源、定時時間、上遊節點運行狀態、調度屬性為正常調度(未被凍結)。
序號 | 狀態類型 | 狀態標識 | 運行流程圖 |
1 | 運行成功狀態 | ||
2 | 未運行狀態 | ||
3 | 運行失敗狀態 | ||
4 | 執行狀態 | ||
5 | 等待狀態 | ||
6 | 暫停/凍結狀態 |
- 紫色(凍結):說明該執行個體被凍結了,任務將不會運行,並且阻塞下遊,可以單擊展開詳情>動作記錄,在操作記錄中查看相關記錄。
- 黃色(等待):等待任務定時時間,單擊右下角展開詳情,在屬性中查看相關資訊。說明
- 出現等待資源狀態,說明當前專案下正在啟動並執行任務達到上限,可以右鍵執行個體在運行診斷的調度資源部分查看任務等待資源時,哪些任務正在佔用資源,詳情請參見等待資源。
- 出現等待時間狀態,說明當前執行個體定時時間還未到。
- 灰色(未運行):需右鍵灰色執行個體,查看上遊父節點的狀態。建議使用運行診斷和上遊分析。
- 藍色(運行中):說明執行個體正在運行,但任務若長時間未運行成功,詳情請參見等待資源。說明 上遊沒有出現以上任何一種狀態,整個商務程序均為灰色,說明上遊依賴關係變動導致商務程序都被孤立。詳情請參見情境:節點孤立。
任務到定時時間,為什麼還沒運行?
- 問題現象
在周期執行個體運行時,執行個體定時時間和執行個體開始已耗用時間有時並不完全一致,或任務到了定時時間還沒運行。
- 問題排查DataWorks上任務未運行通常有4種情況,通過以下樣本進行分析說明。以下圖示為三層依賴,實際情境可能不止三層,但邏輯一樣。
- 情境一:該節點所有依賴的父節點還未運行成功(未運行節點狀態:灰色)。
情境:假設目前時間為1點,A2任務定時時間為1點,A3定時時間為3點,B定時時間為0點,B任務依賴A2、A3節點。
分析:下遊B節點定時時間為0點,此時已經到了任務定時時間,但由於上遊父節點定時時間未到,所以下遊節點B需要等到上遊父節點A2,A3定時時間到了並且任務執行成功後,B任務才會執行。如果上遊A2、A3任務有一個失敗,那下遊B任務將不會調度起來。所以B任務當前的執行個體狀態為未運行。
結論:當該節點所有的依賴的父節點都已經運行完成時,當前節點才會運行。
說明 若上遊一直處於運行中的狀態,您可以參考以下解決方案。- 非離線同步任務一直處於運行中的狀態,如果需要查看具體原因您可以單擊申請連結或掃描下方二維碼加入DataWorksDingTalk交流群進行售前售後諮詢,諮詢可直接@智能機器人,值班時間段內也可直接聯絡值班人員。DataWorksDingTalk交流群二維碼如下。
- 離線同步任務一直處於運行中的狀態,可能處於長時間等待任務執行資源,或實際運行過程中部分邏輯處理較慢,詳情請參見如何排查離線同步任務已耗用時間長的問題。
- 任務定時時間未到(等待時間節點狀態:黃色)。
情境:假設目前時間為4點,A2任務定時時間為1點,A3定時時間為3點,B定時時間為5點,B任務依賴A2、A3節點。
分析:下遊B節點定時時間為5點,父節點A2、A3都已經執行成功,但由於B任務還未到定時時間,所以B任務當前的執行個體狀態為等待時間。
結論:任務定時時間已到,當前節點才會運行。
- 專案下沒有足夠的調度資源可讓任務運行(等待資源節點狀態:黃色)。
情境:假設目前時間為4點,A2任務定時時間為1點,A3定時時間為3點,B定時時間為0點,B任務依賴A2、A3節點。
分析:下遊B節點定時時間為0點,父節點A2、A3都已經執行成功,但由於當前B節點使用的調度資源群組下資源不夠,導致任務沒有調度資源,所以B任務當前的執行個體狀態為等待資源。
結論:工作空間調度資源充足時,任務才會運行。(等待資源狀態時,日誌中顯示當前專案下任務並發達到上限,正在等待gateway資源)
說明 如果任務運行在獨享調度資源群組,您可以在DataWorks控制台查看獨享調度資源群組,通過資源群組使用率查看資源群組下正在執行的任務及資源群組水位,或者右鍵執行個體使用智能診斷功能,查看當前任務在等待資源時,哪些任務正在佔用資源,詳情請參見,等待資源。 - 任務被凍結(任務被凍結節點狀態:紫色)。
情境:假設目前時間為4點,A2任務定時時間為1點,節點狀態為暫停調度,A3定時時間為3點,B定時時間為0點,B任務依賴A2、A3節點。
分析:通過第一條可知,當前節點執行需要父節點全都執行成功,由於左側圖中A2節點是凍結狀態,所以下遊B節點不會執行。右側圖,父節點都執行成功,但由於凍結節點不會調度,所以右側圖B節點不會執行。
結論:父節點被凍結或當前節點被凍結,任務將不會運行。
- 情境一:該節點所有依賴的父節點還未運行成功(未運行節點狀態:灰色)。