開發與維運

DataWorks百問百答08:如何進行任務調度執行、週期實例運行狀況分析?

在datastidio數據開發界面中配置好任務併發布後,便可以在運維中心查看任務的依賴關係圖示、實例的運行狀態以及實例的上下游關係。打開運維中心,可以看到如下的界面:

Q1:週期任務和週期實例是什麼關係?
A1:任務產生實例。任務(即數據開發中的"節點")是起源點,實例是根據任務以及任務配置情況定時生成的執行任務的載體(暫且這麼理解)。
注1:實例為固定時間一次性生成。 生成實例時間:當地時間23:30-24點(生成第二天的所有實例)
 
Q2:實例生成方式( T+1次日生成/即時生成 )有什麼區別?

A2:T+1次日生成指的是實例生成延遲一天,例如今天下午5點發布的任務,選了T+1則今天夜裡23:30生成明天的的實例,明天該任務可正常調度。
     立即生成指的是任務發佈後立刻生成實例,比如說今天下午5點發布的任務,選了立即生成實例,那麼發佈後就能在運維中心--週期實例裡面看到該實例了。
 
注1:小時任務一次性生成第二天的所有實例(大多為24個),分鐘級任務亦然。月、周調度每天生成一個,調度日執行,其他時間該實例為空跑
 
注:為什麼我的任務選了T+1生成實例第二天沒有生成實例?為什麼配置任務時選的即時生成實例但是實際並沒有生成實例
=》
這是因為,發佈任務的時間點和後臺生成實例的時間點(23:30)衝突了。如果在該時段內發佈任務,則影響該任務的實例的正常生成(任務實例會在第三天生成),發佈任務時間儘量避過該時段。
 
Q3:什麼是空跑? 除了月/周任務,小時、分鐘和天任務為什麼會空跑?**

A3:空跑即已經過了當日該實例的定時調度時間所造成的實例運行成功,執行時間為0且沒有日誌信息的情況
舉個栗子:小時任務,一天一次性生成24個實例,從0點到23點,這些實例是一次性生成的,但是,發佈時間是當天14:40,那麼14點40之前的這些實例都屬於空跑調度,因為前面的時間都已經過去了,所以實例是空跑調度。而從15點開始,實例則會正常調度運行。
分鐘、天任務也是一樣的道理,比如說定時時間是0點10分,但是實際任務發佈時間是11點,那麼這個節點當天的實例也會是空跑調度,因為0點10分的定時時間已過。第二天新實例會正常調度。
周/月任務,由於是每天都會產生一個實例,那麼如果周/月任務仍然有下游,為了不阻塞下游任務,在非調度時間裡亦將其置位成功(空跑)狀態以不阻塞下游任務運行。
 
Q4:實例正常產生為什麼沒有調度運行起來?處於黃色/灰色狀態?
A4:實例運行狀態主要分為四種:
1.綠色==>正常運行結束(包括空跑) 
2.紅色==》出錯 
3.黃色==》等待(沒到定時時間或沒有等到執行資源)
4.灰色==》未運行()
需要注意的是,節點是否能運行由兩個主要因素決定:
1.該節點依賴的所有上游實例都已運行完畢。
2.該節點的定時執行時間已經到達(如未到該實例指定的調度時間,則該實例處於黃色等待狀態)。

注:如果實例處於灰色未運行狀態,請檢查上游任務運行狀況,是否有上游實例出錯/未運行/等待,逐級排查。該問題一般都是由於上游未運行/阻塞導致的。
 
Q5:任務延遲嚴重?
A5:任務實例的實際運行時間是受上游影響的。比如說你依賴了10個上游任務,本節點定時時間是3月4號0點,但是上游的10個任務最晚的結束時間是3月5號11點,那麼你的這個實例雖然定時執行的時間設定是3月4號0點,由於上游結束的晚該實例也會推遲到5號11點之後執行,等所有上有都運行完畢了才會開始運行。**
 

DataWorks百問百答歷史記錄請點擊查看

採購季限時!原價2500元現僅需99元,3分鐘入門DataWorks標準版6大場景!點擊查看

更多DataWorks技術和產品信息,歡迎加入【DataWorks釘釘交流群】

Leave a Reply

Your email address will not be published. Required fields are marked *