全部產品
Search
文件中心

SchedulerX:產品功能

更新時間:Jul 06, 2024

通過SchedulerX可以管理定時調度任務、查詢任務執行記錄和作業記錄。本文介紹SchedulerX調度、執行和營運三個方面的功能。

定時調度

  • Crontab

    支援Unix Crontab運算式,不支援秒層級調度。更多資訊,請參見Cron

  • Fixed rate

    Crontab必須被60整除,不支援其它數量級時間間隔的任務,例如cron不支援每隔40分鐘運行一次的定時任務。Fixed rate專門用來做定期輪詢,運算式簡單,不支援秒層級調度。更多資訊,請參見Fixed rate

  • Second delay

    適用於對即時性要求比較高的業務,例如執行間隔為10秒的定時調度任務。Second delay支援秒層級調度。更多資訊,請參見Second delay

  • 日曆

    支援多種日曆,您也可以自訂匯入日曆。常見的使用情境包括金融業務情境。例如,在每個交易日執行定時任務。

  • 時區

    適用於跨國業務,如需要在每個國家所在時區執行定時任務。

  • 資料時間

    SchedulerX可以處理具有資料狀態的任務。建立任務時支援填寫資料位移。例如,某個任務是每天00:30運行,但實際上要處理上一天的資料,就可以向前位移一個小時。已耗用時間不變,執行的時候通過context.getDataTime()獲得的即為前一天23:30。

建立定時調度任務的操作步驟,請參見建立調度任務

調度任務編排

支援可拖拽的工作流程DAG(Directed Acyclic Graph)進行任務編排,操作簡單,前端直接拖拽即可。詳細的任務狀態圖能讓您直觀地查看並排查下遊任務未執行的原因。具體操作,請參見建立工作流程

工作流程調度示意圖

多種調度任務類型

在定時調度和工作流程調度中支援基於多語言的多種任務類型。

Java

針對Java應用,依賴Java SDK接入,運行Java應用中的某個方法。更多資訊,請參見Java任務

指令碼任務

線上編寫指令碼運行,支援Shell、Python等指令碼。更多資訊,請參見指令碼任務

Golang

針對Go應用依賴Go SDK接入,運行Go應用中的某個任務。更多資訊,請參見Golang任務

XXL-JOB

相容xxl-job任務,無需修改代碼即可託管xxl-job任務。更多資訊,請參見XxlJob任務

DataWorks

整合阿里雲DataWorks任務,可以在工作流程中引入DataWorks任務和其他任務做編排。更多資訊,請參見DataWorks任務

Spring

相容Spring @Scheduled註解,無需修改代碼即可託管Spring定時任務。更多資訊,請參見Spring任務

Http

  • http serverless:無需接入用戶端,通過暴露一個公網網域名稱來進行任務調度。更多資訊,請參見HTTP任務(Serverless)

  • http agent:需要在VPC叢集內接入一個schedulerxAgent,可以通過內部網域名稱或者IP來調度。

K8s

支援K8s指令碼任務,也相容原生K8s Job、Cron Job。更多資訊,請參見K8s任務

分散式運算

提供簡單、易用的分布式編程模型,支援進行巨量資料批處理。

  • 單機

    隨機挑選一台機器執行。更多資訊,請參見單機

  • 廣播

    所有機器同時執行且等待全部結束。更多資訊,請參見廣播

  • Map模型

    類似於Hadoop MapReduce裡的Map。只要實現一個Map方法,簡單幾行代碼就可以將海量資料分布式到多台機器上執行。更多資訊,請參見Map模型

  • MapReduce模型

    MapReduce模型是Map模型的擴充,廢棄了postProcess方法,新增了Reduce介面。所有子任務完成後會執行Reduce方法,可以在Reduce方法中返回該任務執行個體的執行結果或者回調業務。更多資訊,請參見MapReduce模型

  • 分區運行

    類似Elastic-Job模型,控制台配置分區參數,可以將分區平均分給多個用戶端執行,支援多語言版本。更多資訊,請參見多語言版本分區模型

失敗自動重試

  • 執行個體失敗自動重試

    在任務管理的進階配置中,可以配置執行個體失敗重試次數和稍候再試,例如,設定重試3次,每次間隔30秒。如果重試3次仍舊失敗,該執行個體的狀態才會變為失敗,並發送警示。

  • 子任務失敗自動重試

    如果是分布式任務(分區模型或MapReduce模型),子任務也支援失敗自動重試和稍候再試,同樣支援通過任務管理的進階配置進行配置。

多種流控手段

  • 執行個體並發數

    任務層級流控,表示一個任務同時最多運行多少個執行個體,預設為1,即上一次跑完才能跑下一次。

  • 單機子任務並發數

    分布式任務流控,可以控制每台機器同時運行子任務的數量。

  • 全域子任務並發數

    分布式任務流控,當機器數量較多時,單機子任務並發數流量比較大。分布式任務可以選擇拉模型,所有計算節點向master節點拉取子任務,控制全域最多同時運行多少子任務。

  • 任務優先順序隊列

    應用層級的流控,一個應用同時最多運行多少個任務。

企業可觀測能力

SchedulerX擁有豐富的可視化能力,例如:

  • 使用者大盤1

  • 任務歷史執行記錄執行記錄

  • 任務作業記錄日誌

  • 任務運行堆棧任務運行堆棧

  • 任務的鏈路追蹤。更多資訊,請參見如何接入鏈路追蹤鏈路追蹤

  • 任務操作記錄操作記錄

強大的營運能力

  • 啟用或禁用任務

    可以通過控制台動態啟用、禁用任務。

  • 原地重跑

    任務失敗後,修改完代碼並發布後,可以立即重新執行。

  • 標記成功

    任務失敗,如果後台將資料處理修正,重新執行又需要幾個小時,可以直接將任務標記為成功。

  • 停止任務

    實現JobProcessor的kill()介面,您就可以在前端停止正在啟動並執行任務,甚至子任務。

  • 重刷資料

    任務具有資料時間,也必然需要重刷資料。例如,一個工作流程最終產生一個報表,但是業務發生變更(新增一個欄位),或者發現上一個月的資料存在錯誤,那麼就需要重刷過去一個月的資料。通過重刷資料功能,可以重刷某些任務或工作流程的資料(只支援天層級),每個執行個體都是不同的資料時間。

警示監控

  • 警示類型:失敗警示、逾時警示、無可用機器警示、成功通知。

  • 警示連絡人群組。

  • 警示歷史。

  • 警示方式:簡訊、電話、郵件、webhook。