?
Java任務(wù)調(diào)度框架之分布式調(diào)度框架XXL-Job介紹及快速入門
調(diào)度器使用場景:
Java開發(fā)中經(jīng)常會使用到定時任務(wù):比如每月1號凌晨生成上個月的賬單蜜宪、比如每天凌晨1點對上一天的數(shù)據(jù)進行對賬操作屑埋,在比如每天凌晨5點給180天未登陸過的用戶發(fā)送郵件提醒等等是牢。定時任務(wù)在我們開發(fā)中也占有很重要的部分象浑。
Java實現(xiàn)定時任務(wù)有很多方式:
1.JDK自帶的定時器實現(xiàn),即java.util.TimerTask類
2.使用Quartz定時器來實現(xiàn)
3.使用spring相關(guān)的任務(wù)調(diào)度。自spring 3.0+以后,spring自帶的任務(wù)調(diào)度统捶,主要依靠TaskScheduler接口的十幾個實現(xiàn)來來實現(xiàn)的
4.spring結(jié)合quartz實現(xiàn)的
5.配合linux的crontabe來實現(xiàn)
等等其他的。
在這里凱哥介紹一個分布式任務(wù)調(diào)度框架-XXL-Job。作者:許雪里喘鸟。代碼現(xiàn)在已經(jīng)開源了匆绣。
xxl-job介紹:
先來看下目前最新版本v2.1.0的架構(gòu)圖:
?
再來看看在git上的stars:
?
再來看下xxl-job的發(fā)展:
?
我們先來看看官方介紹:
XXL-JOB是一個分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標是開發(fā)迅速什黑、學(xué)習(xí)簡單崎淳、輕量級、易擴展°蛋眩現(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線拣凹,開箱即用。
快速入門
源碼下載:
在git上下載源碼(因平臺限制恨豁,凱哥就不貼git地址了)嚣镜,使用到的git命令:git clone。
下載后圣絮,將代碼導(dǎo)入到idea中祈惶。
環(huán)境要求:
Maven 3+
jdk1.7+
mysql5.7+
先來看看項目結(jié)構(gòu):
?
初始化sql腳本
在/xxl-job/doc/db/tables_xxl_job.sql是sql腳本文件。
sql初始化錯誤解決
在sql腳本導(dǎo)入的時候扮匠,有可能會遇到如下錯誤:
?
可以參考如下文章進行修改:
?
sql腳本執(zhí)行之后,可以看到有以下6張表了凡涩。
?
任務(wù)調(diào)度中心的配置
在XXL-Job所有項目中棒搜,任務(wù)調(diào)度中心就是源碼中的xxl-job-admin這個工程。我們需要修改這個工程中信息成為自己的活箕。
修改admin配置文件
文件地址:/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties
1:修改數(shù)據(jù)庫信息
?
2:如果需要郵件的話可以配置成自己的力麸。其他項根據(jù)需求進行修改即可
部署調(diào)度中心項目
因為admin項目是spring boot項目,所以育韩,我們直接run:XxlJobAdminApplication即可克蚂。文件位置如下圖:
?
啟動項目后,在瀏覽器中輸入:127.0.0.1:8080/xxl-job-admin
默認的用戶名及密碼->用戶名:admin 密碼:123456
登陸之后筋讨,出現(xiàn)如下圖的界面:
?
菜單說明:
運行報表:如上圖埃叭。是調(diào)度器運行情況報表
任務(wù)管理:定時任務(wù)管理列表
?
調(diào)度日志:運行日志記錄
?
執(zhí)行器管理:
?
先配置執(zhí)行器,然后在任務(wù)管理中悉罕,新增任務(wù)管理赤屋,啟動任務(wù)之后,就可以在調(diào)度日志中壁袄,查看到運行結(jié)果了类早。
在下一篇中,我們將介紹怎么在spring boot項目中集成xxl-job使用教程嗜逻。歡迎大家一起學(xué)習(xí)涩僻。
本文來源:凱哥Java(kaigejava)