本文為您介紹任務未運行的相關問題。
使用限制
僅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任務當前的實例狀態為未運行。
結論:當該節點所有的依賴的父節點都已經運行完成時,當前節點才會運行。
說明 若上游一直處于運行中的狀態,您可以參考以下解決方案。- 非離線同步任務一直處于運行中的狀態,如果需要查看具體原因您可以單擊申請鏈接或掃描下方二維碼加入DataWorks釘釘交流群進行售前售后咨詢,咨詢可直接@智能機器人,值班時間段內也可直接聯系值班人員。DataWorks釘釘交流群二維碼如下。
- 離線同步任務一直處于運行中的狀態,可能處于長時間等待任務執行資源,或實際運行過程中部分邏輯處理較慢,詳情請參見如何排查離線同步任務運行時間長的問題。
- 任務定時時間未到(等待時間節點狀態:黃色)。
場景:假設當前時間為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節點不會執行。
結論:父節點被凍結或當前節點被凍結,任務將不會運行。
- 場景一:該節點所有依賴的父節點還未運行成功(未運行節點狀態:灰色)。