1. 概述
注:本文適用於 4.1.2 及之後版本。
1.1 應用場景
使用者設計的定時任務取數邏輯為:每天抽取當天調度時間往前推 24h 內的資料,彙集到目標資料庫。
節假日期間 3 天,系統當機,定時任務沒有運作,導致目標資料庫缺少 3 天的資料。
1.2 實現方案
使用 重試任務 功能,補齊缺失資料。
本文方案適用於「增量同步-使用時間戳」場景,即需要滿足下面兩個條件:
資料只存在新增,且每次抽取的資料不重疊,比如取出當天、當月、前一天、上月資料等。
定時任務取數時用到 ${cyctime},或基於 ${cyctime} 延伸出來的 自訂時間變數(任務參數、全局參數裏定義的時間類型參數)。
2. 操作步驟
2.1 場景模擬
2.2.1 任務設定說明
定時任務每天晚上執行,將「到貨日期」為當天的資料寫入到目標表中。如下圖所示:
2.2.2 場景說明
2024-07-23 日發現,因業務庫異常,導致目標表中缺少 2024-07-21、2024-07-22 兩天的資料。如下圖所示:
2.2 執行補資料操作
業務庫修復完成後,可使用「重試任務」功能將 2024-07-21、2024-07-22 兩天的資料抽取到目標資料庫。
1)在「任務維運>運作記錄」中,找到該任務的歷史運作記錄。點選「重試」按鈕,如下圖所示:
2)本文範例中,定時任務只包含「資料同步」這一個節點,選擇「指定範圍重試>重試節點」,如下圖所示:
注:使用者根據實際情況選擇重試範圍。
3)「指定業務日期」中選擇 2024-07-22 的日期(由於參數的格式為 yyyy-mm-dd,所以無需考慮時分秒,時分秒任意設定即可),先補齊 2024-07-22 的資料。如下圖所示:
注1:進行重試時,使用者可以對本次重試時的參數進行臨時配置,配置結果只影響本次重試運作、不修改實際任務配置。
注2:A 任務依賴 B 任務,對當前 B 任務設定了「指定業務日期」,會觸發 A 任務,A 任務會被觸發但是執行的時間是當前時間非「指定業務日期」。
4)運作成功後,可看到 2024-07-22 的資料已抽取到目標表中。如下圖所示:
可在「任務維運>運作記錄」中,看到重試的運作記錄。如下圖所示:
5)重複上述步驟,將「指定業務日期」設定為 2024-07-21 ,補齊 2024-07-21 的資料。最終效果如下圖所示: