你應(yīng)該知道的任務(wù)調(diào)度平臺 XXL-JOB

背景

日常開發(fā)中,我們難免會遇到需要處理一些定時任務(wù),而且這些定時任務(wù)還需要靈活的調(diào)度艾凯,并且在異常的情況下需要做的重試或者報警。這些任務(wù)我們希望能靈活配置懂傀,并且能及時生效趾诗,不需要經(jīng)常發(fā)版本更新代碼。
所以我們希望能有一個這樣的平臺鸿竖,能滿足我們的這些需求。感謝開源社區(qū)铸敏,已經(jīng)有了很好的解決方案缚忧,就是 XXL-JOB。
本文介紹的版本是基于 XXL-JOB的1.9.0版本杈笔,新版本調(diào)度中心 Admin 已經(jīng)切換為 SpringBoot 項目了闪水。

介紹

XXL-JOB是一個輕量級分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標是開發(fā)迅速蒙具、學(xué)習(xí)簡單球榆、輕量級、易擴展〗ぃ現(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線持钉,開箱即用。
中文文檔地址

XXL-JOB由兩個模塊組成分為調(diào)度中心執(zhí)行器篱昔,作者許雪里的開源項目每强,感謝大佬。

調(diào)度中心搭建

release拉取最新代碼

根據(jù)自己的需要配置xxl-job-admin中xxl-job-admin.properties文件中的數(shù)據(jù)源信息以及賬號密碼州刽,以及accessToken和郵件服務(wù)器地址等信息
[站外圖片上傳中...(image-3f958e-1555946604234)]

配置log4j.xml中日志的路徑
[站外圖片上傳中...(image-16b017-1555946604234)]

將xxl-job-admin打包成war包空执,部署到tomcat中即可

執(zhí)行器配置

新建Springboot項目,pom.xml中引入xxl-job的核心庫


<dependency>
       <groupId>com.xuxueli</groupId> 
       <artifactId>xxl-job-core</artifactId>
       <version>1.9.0</version>
</dependency>

配置文件中配置調(diào)度中心的地址和一些具體參數(shù)
[站外圖片上傳中...(image-edda2e-1555946604234)]

編寫jobHandler穗椅,繼承IJobHandler實現(xiàn)內(nèi)部execute方法辨绊,具體的業(yè)務(wù)邏輯就在這個方法里面實現(xiàn)。這種方式是通過 Java 代碼來執(zhí)行定時任務(wù)的匹表,除了 JavaBean 方式還支持 Python门坷,nodeJs,Shell 等方式袍镀。
我最喜歡的是 Python 方式拜鹤,因為 Python 在處理簡單的定時任務(wù)的時候還是比較得心應(yīng)手的,而且很快速流椒,但是稍微復(fù)雜一點的就不方便了敏簿,而且 Python 可以直接在WebIDE 里面直接粘貼代碼,實現(xiàn)功能,就不用發(fā)版本了惯裕,但是具體的需要看具體的業(yè)務(wù)温数。


@Service
@JobHandler(value = "demoHandler")
public class DemoHandler extends IJobHandler {
    @Override
    public ReturnT<String> execute(String s) throws Exception {
        XxlJobLogger.log("日志記錄數(shù)據(jù)...");
        //do something
        return ReturnT.SUCCESS;
    }
}

新增任務(wù)

配置好調(diào)度中心并且也成功啟動了執(zhí)行器后,登錄調(diào)度中心新增執(zhí)行器然后就可以配置任務(wù)了

新增執(zhí)行器
[站外圖片上傳中...(image-42eda9-1555946604234)]

新增任務(wù)
[站外圖片上傳中...(image-20ef13-1555946604234)]

新增任務(wù)的時候需要選擇上一步創(chuàng)建的執(zhí)行器蜻势,選擇運行模式撑刺,如果是 JavaBean 方式就配置JobHandler,或者選擇 Python 模式等握玛,然后填上必要的一些信息够傍,如Cron以及一些參數(shù)
具體配置可以參考三、任務(wù)詳解
這里的配置項比較多挠铲。

配置完成后可以如下冕屯,可以手動執(zhí)行,暫停拂苹,查看日志安聘,如果是Python 模式可以直接點擊GLUE按鈕進去填寫代碼,相關(guān)的代碼也有版本回溯瓢棒,方便回滾浴韭,十分方便。
[站外圖片上傳中...(image-98e66f-1555946604234)]

小結(jié)

整個 XXL—JOB 都是支持分布式部署的脯宿,而且執(zhí)行器也可以配置多個念颈,具體的路由策略也是可以配置的,十分方便连霉。新版本的調(diào)度中心 Admin 已經(jīng)升級為 SpringBoot 項目了舍肠,而且項目本身就攜帶了很多類型的執(zhí)行器可以使用,基本上實現(xiàn)了開箱即用窘面,只要添加自己的業(yè)務(wù)邏輯就可以了翠语。

不過整個 XXL-JOB 有個缺點就是沒有權(quán)限管理,執(zhí)行器沒有實現(xiàn)權(quán)限控制财边,這個目前作者沒有實現(xiàn)肌括,應(yīng)該在后續(xù)的版本中會增加,這個在作者的 todo list 里面酣难,但是具體什么時候?qū)崿F(xiàn)就不知道了谍夭。目前我們這邊項目已經(jīng)在線上跑了差不多一年了,還是比較穩(wěn)定的憨募,而且只是組內(nèi)使用紧索,沒有執(zhí)行器權(quán)限的問題,但是如果要是上升到公司級別菜谣,讓各個組用的話權(quán)限還是一個重要的點珠漂。


題外話

一個理工男程序員晚缩,除了敲代碼之外,還喜歡看書聽音樂寫寫東西媳危。
如果大家喜歡我的文章的話荞彼,歡迎大家轉(zhuǎn)發(fā)評論點贊,你們的喜歡是對我最大的鼓勵待笑。

公眾號:沙漏灑灑鸣皂,主要用來分享技術(shù)和成長感悟,如果喜歡歡迎關(guān)注
博~~客:個人網(wǎng)站

最近在網(wǎng)上看到了床長的人工智能相關(guān)教程文章暮蹂,文章寫的通俗易懂寞缝!風(fēng)趣幽默!還會講段子仰泻!感覺在現(xiàn)在人工智能越來越火的今天荆陆,是時候?qū)W習(xí)一波了!點擊瀏覽教程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末我纪,一起剝皮案震驚了整個濱河市慎宾,隨后出現(xiàn)的幾起案子丐吓,更是在濱河造成了極大的恐慌浅悉,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件券犁,死亡現(xiàn)場離奇詭異术健,居然都是意外死亡,警方通過查閱死者的電腦和手機粘衬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門荞估,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稚新,你說我怎么就攤上這事勘伺。” “怎么了褂删?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵飞醉,是天一觀的道長。 經(jīng)常有香客問我屯阀,道長缅帘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任难衰,我火速辦了婚禮钦无,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盖袭。我一直安慰自己失暂,他們只是感情好彼宠,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趣席,像睡著了一般兵志。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宣肚,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天想罕,我揣著相機與錄音,去河邊找鬼霉涨。 笑死按价,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笙瑟。 我是一名探鬼主播楼镐,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼往枷!你這毒婦竟也來了框产?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤错洁,失蹤者是張志新(化名)和其女友劉穎秉宿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屯碴,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡描睦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了导而。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忱叭。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖今艺,靈堂內(nèi)的尸體忽然破棺而出韵丑,到底是詐尸還是另有隱情,我是刑警寧澤虚缎,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布撵彻,位于F島的核電站,受9級特大地震影響遥巴,放射性物質(zhì)發(fā)生泄漏千康。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一铲掐、第九天 我趴在偏房一處隱蔽的房頂上張望拾弃。 院中可真熱鬧,春花似錦摆霉、人聲如沸豪椿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搭盾。三九已至咳秉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸯隅,已是汗流浹背澜建。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝌以,地道東北人炕舵。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像跟畅,于是被迫代替她去往敵國和親咽筋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容