本文介紹任務編排功能中的基本概念。
任務
任務是能完成一項功能操作的節點。
任務節點
節點是任務流中任務的實體承載,其可以處于任務流中的任意位置,節點之間通過邊來建立依賴關系。任務節點類型如下:
數據集成
數據加工
狀態檢查
通用
節點實例
若干個節點實例組成任務流實例,節點之間的依賴關系是基于當時運行的任務流版本。
對于任務流的恢復操作,有且只有運行失敗的節點實例會按照依賴關系再次運行。對于重跑操作,所有節點都會按照依賴關系重新運行。恢復和重跑都是基于任務流實例運行時使用的任務流版本進行操作的。
節點實例的狀態如下:
運行中(RUNNING)
暫停(SUSPEND)
失敗(FAIL)
成功(SUCCESS)
終止中(KILLING)
跳過(SKIPPED)
取消(CANCELLED)
排隊中(QUEUED)
任務流
任務流是由多個任務節點組合編排出的任務組,任務之間可以有依賴關系,整個依賴關系是一個有向無環圖(DAG),整個任務流都可以被執行。
任務流版本
任務流版本是任務流在某個時刻的快照。任務流版本形態如下:
編輯態版本:當前可編輯的版本,每次單擊試運行(手動觸發)都會保存一個編輯態版本,且每次運行都只會基于最新的、且可編輯的版本運行。
發布態版本:任務流發布后會產生一個版本,每次定時觸發都會運行當前最新的發布態版本。
任務流執行方式
任務流的執行方式分為調度觸發(被動執行)和手動觸發(主動執行)。
手動觸發:手動運行任務流,基于當前可編輯的版本(編輯態)。
調度觸發:定時調度任務流,基于最新的發布版本(發布態)。
任務流實例
任務流實例是運行某條任務流的具體運行記錄。對于運行成功的任務流,可以進行重跑操作,對于運行失敗的任務流,可以進行恢復或置成功操作。
對于手動運行的任務流,會生成任務流實例版本。
任務流實例狀態有如下幾種:
凍結任務流
凍結任務流會導致所有調度觸發都無法運行,非事件調度任務會直接失敗,包括事件調度、補數據、重跑、恢復,事件調度任務流會進入等待執行狀態。
解凍任務流
解凍任務流后,會恢復任務流調度執行。
邊
任務流(DAG)中的一條有向邊,具有起始節點和終止節點。節點之間的依賴關系由邊來定義,起始節點為終止節點的上游,終止節點為起始節點的下游,只有當上游節點都運行成功后,下游節點才會運行。邊的類型如下:
實體邊:即有向邊,可體現節點之間(節點與任務流)的依賴關系。
同任務流邊:節點的依賴關系在同一個任務流中。
跨任務流邊:節點的依賴關系是跨任務流的,一般可通過調度配置的事件訂閱功能實現。
業務時間
默認運行時間減一天,業務時間作為變量使用時,默認的變量名為bizdate。
補數據
基于任意任務流的發布態Version N,給定業務時間或業務范圍,生成一個或多個任務流實例。
責任人、相關人員
責任人:僅責任人可編輯當前任務流、任務相關的配置,可試運行任務,接收任務運行告警信息。
相關人員:具備查看當前任務流、任務相關配置的權限,可試運行任務,不具備編輯權限。
運行權限
任務運行時權限,是以任務流的責任人所擁有的數據庫表權限進行判斷。
重要若責任人缺失某些庫表的權限,即使當前觸發運行的人員具備對應庫表權限,仍會運行失敗。
可觸發運行的人員有:責任人、相關人員。
運行時間
任務實際的執行時間。
運行方式
試運行
指定當前時間運行該任務流。
空跑
當任務流A(使用任務流依賴檢查節點)依賴任務流B,且不需要實際運行B時,可以使B空跑產生一個調度記錄,A任務即可正常執行。
指定時間運行
使用該運行方式需要您定義一個任務流變量(時間變量),并且在SQL中使用。變量會在指定的業務時間下,通過偏移得到最終的變量時間,可實現在SQL等配置不變的情況下,達到在指定時間運行任務的目的。
指定時間范圍運行
在時間范圍內運行方式也需要定義多個任務流變量(時間變量),目前一次只能運行50個節點實例。
例如調度周期為1日,那么任務流實例只能運行50天。
說明時間范圍內運行的任務是串行運行的,即必須一個業務時間的任務執行成功,下一個業務時間才可執行任務。