Schedulerx2.0是阿里中間件自研的基於Akka架構的新一代分佈式任務調度平臺,提供定時、任務編排、分佈式跑批等功能。使用Schedulerx2.0,您能夠在控制檯配置管理您的定時任務,查詢歷史執行記錄,查看運行日誌。藉助Schedulerx2.0,您還能夠經過工做流進行任務編排和數據傳遞。Schedulerx2.0還提供了簡單易用的分佈式編程模型,簡單幾行代碼就能夠將海量數據分佈式到多臺機器上執行。前端
Schedulerx2.0提供了任務調度與執行的一整套解決方案,在阿里巴巴集團內部普遍使用並久經考驗,具備高可靠、海量任務、秒級別調度等能力。java
上線時間:2019-04-30python
Schedulerx2.0是Schedulerx1.0(DTS)的下一代產品,採用全新的架構,是全新自研的下一代分佈式任務調度平臺,不但解決了老產品的性能瓶頸,還提供了更多更快更強的能力。spring
3.1.1 Crontabshell
支持unix crontab表達式,不支持秒級別。編程
3.1.2 Fixed rate架構
衆所周知,crontab必須被60整除,好比想每隔40分鐘跑一次,cron不支持。Fixed rate專門用來作按期輪詢,表達式簡單,不支持秒級別。併發
3.1.3 Fixed delay運維
適合對實時性要求比較高的業務,好比每次執行完成隔10秒再跑,那麼second delay很是適合你。而且second delay能支持到秒級別。分佈式
3.1.4 日曆
支持多種日曆,還能夠自定義導入日曆。好比金融業務須要在每一個交易日執行。
3.1.5 時區
跨國的業務,須要在每一個國家的時區定時執行某個任務。
支持工做流(DAG)進行任務編排,操做簡單,前端直接單手操做拖拖拽拽便可。詳細的任務狀態圖能一目瞭然看到下游任務爲何沒跑。
支持多種任務類型,能夠無限擴展。
3.4.1 執行方式
3.4.2 分佈式編程模型
Schedulerx2.0能夠處理有數據狀態的任務。建立任務的時候能夠填數據偏移。好比一個任務是天天00:30運行,可是實際上要處理上一天的數據,就能夠向前偏移一個小時。運行時間不變,執行的時候經過context.getDataTime()得到的就是前一天23:30。
既然任務具備了數據時間,必定少不了重刷數據。好比一個任務/工做流最終產生一個報表,可是業務發生變動(新增一個字段),或者發現上一個月的數據都有錯誤,那麼就須要重刷過去一個月的數據。
經過重刷數據功能,能夠重刷某些任務/工做流的數據(只支持天級別),每一個實例都是不一樣的數據時間。
以前的老產品Schedulerx1.0(DTS)和spring的結合很是暴力,對bean的命名有強要求,常常遇到注入失敗的問題。Schedulerx2.0支持原生spring語法,接入更加的方便。
本文爲雲棲社區原創內容,未經容許不得轉載。