調度周期定義節點在生產環境下自動執行的頻率。DataWorks 調度系統根據配置的調度周期自動組建循環執行個體,並依據節點間依賴關係和執行個體的定時時間觸發執行。
核心概念
周期執行個體:調度系統根據周期任務的調度配置(例如每天 0 點執行),為每個業務日期產生一個運行實體,即周期執行個體。任務的運行、狀態和日誌均與該執行個體關聯。
跨周期依賴:DataWorks 支援不同調度周期的節點互相依賴。例如,一個每日調度的下遊節點可以依賴一個每小時調度的上遊節點。節點間依賴關係的本質是其產生的周期執行個體之間的依賴。詳情參見不同周期依賴關係說明。
空跑:對於非每日調度的任務(如周、月、年調度),在非指定的運行日期,調度系統會產生一個"空跑"執行個體。該執行個體到達定時時間後會立刻變為"成功"狀態,但不會執行節點內的代碼邏輯。空跑主要用於打通依賴,確保下遊的日調度節點能夠正常觸發。
執行個體運行狀態為成功,執行時間長度為 0 秒,無執行日誌。
不佔用調度或計算資源。
不阻塞下遊節點的執行。即使上遊節點空跑,下遊節點在滿足其運行條件後也會正常執行。
基本原則與情境
調度執行條件
一個周期執行個體的執行必須同時滿足以下兩個條件,無先後順序:
其依賴的所有上遊執行個體均已成功執行(包括空跑成功的執行個體)。
已到達執行個體自身的定時時間。
因此,配置的調度時間僅為預期定時時間,節點的實際執行時間受上遊完成時間、節點運行資源、節點實際執行條件情況等因素影響。
工作流程調度情境
在一個由節點 A、B、C 組成的工作流程(A→B→C)中,調度時間的配置會影響整個流程的執行:
情境一:統一啟動時間 | |
整個商務程序要求淩晨 3 點後開始,只需將起始節點 A 的定時時間設為 |
情境二:各節點啟動時間不同 | |
A 節點定時 3 點執行,B 節點要求 5 點後才能執行,C 節點要求 6 點後才能執行。需要為 A、B、C 分別設定定時時間為 | |
情境三:部分節點有特定啟動時間 | |
A 節點定時 3 點執行,B 節點要求 5 點後才能執行,C 節點無特定時間要求。需要將 A 的定時時間設為 | |
更新調度時間的影響
在調度配置中修改節點的調度時間並重新發布後,其影響取決於選擇的執行個體產生方式:
T+1次日產生:選擇此項並發布後,近兩天(T和T-1)已產生的執行個體(包括已完成和未啟動並執行)的定時時間將更新為新配置的時間。未產生的未來執行個體將按新時間產生。
即時產生執行個體:選擇此項會根據新配置立即產生新的執行個體,歷史執行個體的定時時間不會改變。
調度類型配置
DataWorks 支援分鐘、小時、日、周、月、年六種調度周期。在資料開發(DataStudio)的節點編輯頁面,單擊右側的調度配置,在調度時間地區設定。
調度時間的配置方式取決於節點的組織形式:
工作流程節點:如果節點是以工作流程方式組織的,調度時間統一在工作流程上配置,工作流程內的各個節點不能單獨配置調度時間。如需修改,請前往工作流程的調度配置中設定。
獨立節點:如果節點未歸屬任何工作流程,調度時間由節點自身獨立配置。
分鐘調度
分鐘調度的最小時間間隔為 1 分鐘。
配置樣本
目標:節點在每天 00:00 至 23:59 時間段內,每隔 30 分鐘調度一次。
cron 運算式根據選擇的時間自動產生,不可手動修改。

調度詳情
以上配置每天會產生 48 個周期執行個體,其定時時間分別為 00:00, 00:30, 01:00, ... , 23:30。每個執行個體的業務日期(bizdate)均為當天。
分鐘調度更多依賴情境可參見:分鐘任務依賴其他任務。
小時調度
注意事項
時間周期遵循左閉右閉原則。例如,配置在
00:00~03:00時間段內每隔 1 小時運行一次,調度系統將產生 4 個執行個體,定時時間分別為00:00、01:00、02:00和03:00。可設定時間段和間隔,也可直接指定多個已耗用時間點。
配置樣本
目標:節點在每天 00:00 至 23:59 時間段內,每隔 6 小時自動調度一次。
cron 運算式根據選擇的時間自動產生,不可手動修改。

調度詳情
調度系統每天將產生 4 個執行個體,定時時間分別為 00:00、06:00、12:00 和 18:00。
小時調度更多依賴情境可參見:小時任務依賴其他任務。
日調度
日調度節點每天在指定的定時時間運行一次。建立周期任務時,預設調度時間在 00:00~00:30 時間段內隨機產生,可根據需要修改。
配置樣本
目標:節點每天 13:00 運行一次。
cron 運算式根據選擇的時間自動產生,不可手動修改。

調度詳情
調度系統每天會為該任務產生一個執行個體,定時時間為當天 13:00。
日調度更多依賴情境可參見:天任務依賴其他任務。
周調度
在非指定的調度日期,周調度節點會觸發空跑,以確保下遊依賴能夠正常執行。詳情參見空跑。
配置樣本
目標:任務在每周一和周五的指定時間運行。在周一、周五產生的執行個體會正常調度執行,其他日期的執行個體會空跑。
cron 運算式根據選擇的時間自動產生,不可手動修改。

調度詳情
調度系統會自動為任務產生執行個體並運行。
使用補資料功能時,注意選擇的業務日期。DataWorks 中業務日期 = 定時調度日期 - 1。例如,要補一個周一啟動並執行周調度任務,其業務日期應選擇為上周日。若選擇其他日期,補資料執行個體將空跑。
月調度
在非指定的調度日期,月調度節點會觸發空跑,以確保下遊依賴能夠正常執行。詳情參見空跑。
月調度支援將指定時間配置為每月最後一天。
配置樣本
目標:任務在每月最後一天的指定時間運行。每月最後一天產生的執行個體會正常調度執行,其他日期的執行個體會空跑。
cron 運算式根據選擇的時間自動產生,不可手動修改。

調度詳情
調度系統會自動為任務產生執行個體並運行。
使用補資料功能時,注意選擇的業務日期。DataWorks 中業務日期 = 定時調度日期 - 1。例如,要補一個 1 月 31 日啟動並執行月末任務,其業務日期應選擇為 1 月 30 日。若選擇其他日期,補資料執行個體將空跑。
年調度
在非指定的調度日期,年調度節點會觸發空跑,以確保下遊依賴能夠正常執行。詳情參見空跑。
配置樣本
目標:任務在每年的一月、四月、七月、十月的 1 日和最後一日運行。在指定日期產生的執行個體會正常調度執行,其他日期的執行個體會空跑。

調度詳情
調度系統會自動為任務產生執行個體並運行。
更多依賴情境可參見:複雜依賴情境調度配置原則與樣本。