本文為您介紹任務未運行的相關問題。

使用限制

僅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節點不會執行。

      結論:父節點被凍結或當前節點被凍結,任務將不會運行。