1. 概述
1.1 版本
FineDataLink 版本 | 功能說明 |
---|---|
4.0.30 | 支援設定定時任務的調度依賴 |
4.1.1 | 依賴任務下拉框中,遮蔽成環任務 |
4.1.4 | 新增事件調度時,增加一個範例,幫助使用者理解功能 |
4.1.11.1 | 事件調度優化:
|
4.1.13.1 | 開啟某個定時任務後,點選「調度計劃>事件調度>查看按鈕」,將跳轉至「維運中心>定時任務>調度計劃>事件調度」介面並開啟該事件調度 |
4.2.5.1 | 事件調度配置路徑簡化,提升易用性 |
4.2.5.4 | 切換條件判斷時機時,保留「實時判斷」和「定時判斷」的設定內容 |
1.2 應用場景
數倉構建程式中 ODS 層有 a、b、c 任務互不影響、DW 層有 d 、f 任務,需要 a、b 任務執行完觸發 d 任務,來減少 DW 層對 ODS 層完全更新完等待的時間;若 a、b 執行失敗則不觸發,來避免資料準確性的問題。
定時任務中設定任務 b 依賴任務 a(上午執行),希望在晚上(閒置時間)執行任務 b,而不是上游任務 a 執行完立即執行任務 b,避免造成資源緊張的問題。
使用者設定 a 任務觸發 b 任務,若 a 任務失敗,重跑 a 任務時,希望不觸發 b 任務。
1.3 功能簡介
FineDataLink 可設定任務的調度依賴,例如設定任務 A、任務 B 在指定的條件執行成功後再執行任務 C 以及後續任務。
1.4 前提條件
使用前需要確定註冊了「調度計劃-進階功能(試用)」功能點。
1.5 升級相容
升級前的事件調度將有任務上下游關係的整合為一個事件調度;配置項升級後,任務執行條件判斷時機預設為:實時判斷;多任務觸發關係預設為:實體可以重複判斷。
注:開放平台插件呼叫的任務無法觸發事件調度。
2. 功能說明
2.1 新增事件調度入口
入口一:批量新增
在「維運中心>定時任務>調度計劃>事件調度」中新增。如下圖所示:
入口二:單個新增
開啟一個定時任務,點選「調度計劃>事件調度>去建立按鈕」,可跳轉到「維運中心>定時任務>調度計劃>事件調度」中,新增事件調度。如下圖所示:
2.2 事件調度說明
編輯當前任務組:
屬性 | 說明 |
---|---|
組內任務 | 展示需要被調度的任務,可新增、刪除 新增任務時僅支援選擇已發佈且未配置過事件調度的任務 |
上游依賴 | 展示上游執行的任務,可新增、刪除,可多選任務 新增任務僅支援選擇已發佈且未配置過事件調度的任務 新增任務不支援選擇依賴/呼叫成環的任務 |
當前任務組執行條件 |
觸發邏輯:到達定時執行時間——>判斷上游任務最新一次運作記錄是否滿足條件——>成功則觸發一次下游任務,不成功則不觸發 上游設定條件內容後,滿足條件內容的上游任務成功執行,則當前任務到達設定的排程管理時間後執行。
若勾選,則表示任務運作記錄 僅判斷一次:多個任務產生了最新&未成功觸發過下游的運作記錄。 若不勾選,任務運作記錄可以重複判斷:可以重複使用最新產生的運作記錄去判斷 |
在任務組畫布中勾選「旁系任務組」,即不僅展示該任務組有聯動的任務組,也會展示其上下游任務組的所有聯動任務組,如下圖所示:
編輯調度計劃:
2.3 管理事件調度
可在「維運中心>定時任務>調度計劃>事件調度」中管理已新增的事件調度。詳情請參見:定時任務維運-調度計劃
2.4 事件調度的其他功能
1)手動運作
生產環境下提供「運作當前任務及下游」操作,產生的運作記錄根據「事件調度」中配置的任務關係&條件內容,判斷下游任務是否觸發,如下圖所示:
注:該次手動產生的運作記錄(包含下游被本次拉起的實體)會參與事件調度條件內容判斷(包含定時),判斷使用成功觸發下游過後不再使用本次的運作記錄去參與判斷。
2)運作記錄重試
重試當前任務下,提供「重試當前任務及下游」操作,產生的運作記錄,根據「事件調度」中配置的任務關係&條件內容,判斷下游任務是否觸發。
應用場景:例如使用者設定 A、B 任務觸發 D 任務,A、B任務都失敗,未觸發下游任務 D,希望能夠重跑任務,若兩個任務均重跑成功則觸發下游任務,就可以使用此功能。
重試任務功能說明請參見:任務記錄:重試任務
注:該次手動重試產生的運作記錄(包含下游被本次拉起的實體)會參與事件調度條件內容判斷(包含定時),判斷使用成功觸發下游過後不再使用本次的運作記錄去參與判斷。
3)權限
事件調度中任一有管理權限的任務,支援查看該事件調度,對於畫布中已有的&沒有管理權限的任務不支援行動、刪除。
僅支援對有管理權限的任務配置觸發條件,若該組中既包含無權限任務,又包含有權限任務,不允許對這個分組調整觸發條件和新增、刪除下上游任務,針對有權限任務可行動至新分組。
針對事件調度的分組,其上下游分組中若有無權限的任務,則這些任務不支援進行行動、編輯、刪除等操作。
2.5 特殊場景說明
場景 | 說明 |
---|---|
任務 A—>B—>C—>D,分別屬於分組1、2、3、4,使用者將 B 任務刪除了 但是 C 任務是有單獨配置的排程管理的 | 情況1:分組 2 裏還有其他任務,不影響整個事件調度,校驗透過 情況2:分組 2 沒有其他任務,整個事件調度在管理列表標紅,事件調度編輯介面內校驗,調度狀態新增調度異常狀態,整個調度事件失效,C 任務也不會觸發 D |
注:單個任務組關閉後,下游任務將不能繼續按照事件調度設定執行,如下圖所示:
3. 操作步驟
例如使用者已經建立了 ods 、dw 和 dm 層的幾個任務,如下圖所示:
並且給 ods 層的任務設定了一個排程管理。希望能給 dw 和 dm 層的資料設定事件調度,在 ods 層任務指定條件下執行成功後再執行 dw 層以及 dm 層的任務。
3.1 建立事件調度分組
首先將需要設定調度的任務進行分組,便於後續按照分組進行調度設定,如下圖所示:
dm 層和 dw 層的任務同理,如下圖所示:
3.2 設定當前和上游任務資訊
選擇事件調度當前任務,即需要被調度的 dw 層任務,點選新增上游,將 ods 層任務新增進來,如下圖所示:
3.3 設定當前任務組執行條件
點選「編輯當前組」,設定當前任務組的執行條件,選擇定時判斷,設定當前任務執行的定時時間,並設定任務執行條件內容,如下圖所示:
3.4 設定下游任務資訊
設定 dm 層任務為當前任務被事件調度執行後繼續執行的任務,即在 dm 任務組新增上游任務為 dw 組,如下圖所示:
並設定 dm 層的執行條件為實時判斷,當上遊任務運作成功後執行,如下圖所示:
然後就可以看到事件調度的介面,如下圖所示:
3.5 效果查看
為 ods 層任務設定排程管理,需要注意的是如果事件調度設定的當前任務是排程管理,這個時間需要在 ods 排程管理時間之後,如下圖所示:
當 ods 層任務運作成功後,事件調度設定的 dw 層任務在調度時間將執行,若執行成功,同時下游的 dm 層任務也會實時判斷並執行,如下圖所示: