成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式任務調度XXL-Job,賊好用,體驗一把

開源
為了能夠更加靈活的控制定時任務,最近在項目中開始推行定時任務調度系統,跟不少大廠朋友交流之后,發現XXL-Job市場還是挺廣的,功能強大,定為首選。

背景

為了能夠更加靈活的控制定時任務,最近在項目中開始推行定時任務調度系統,跟不少大廠朋友交流之后,發現XXL-Job市場還是挺廣的,功能強大,定為首選。

再加上XXL-Job是基于Spring Boot的開源項目,二次開發非常容易,所以就選定了XXL-Job。這篇文章就帶大家領略一下XXL-Job的魅力,可以不用,但不可不知道。

XXL-Job簡介

訪問官方網站會看到XXL-Job各類特性介紹,這里總結一下就是:學習簡單、輕量級、易擴展、動態生效、調度中心HA、執行器HA、彈性擴容縮容、路由策略、故障轉移、阻塞處理策略、任務超時控制、任務失敗重試、任務失敗告警、分片廣播任務、動態分片、事件觸發等很多特性。

上面介紹了優點,而個人在實踐和使用的過程中發現代碼的規范性、代碼質量等都有待提高和規范。具有二次開發能力的我們,可以對配置文件環境隔離、日志配置等進行定制化處理。提升空間還是有的。

下面就來具體實踐、體驗一下。

源碼下載

可通過GitHub或Gitee上下載源碼:

GitHub地址:http://github.com/xuxueli/xxl-job

Gitee地址:https://gitee.com/xuxueli0323/xxl-job

這里通過Gitee下載:

git clone git@gitee.com:xuxueli0323/xxl-job.git

下載完成,用IDE打開項目結構:

xxl-job

直接拉取代碼是主干代碼,可看到版本是2.3.1-SNAPSHOT,原則上還是建議使用穩定版本。此時可以通過git命令從主干切換到穩定版本2.3.0或通過IDE提供的版本工具進行切換。

這里通過git命令切換到遠程分支:

git checkout -b 2.3.0 origin/2.3.0

項目結構項目源碼結構如下:

  • xxl-job-admin:調度中心
  • xxl-job-core:公共依賴
  • xxl-job-executor-samples:執行器Sample示例;
  • xxl-job-executor-sample-springboot:Springboot版本,通過Springboot管理執行器,推薦這種方式;
  • xxl-job-executor-sample-frameless:無框架版本;

部署時,調度中心單獨部署,samples中代碼可集成到項目中進行使用。

初始化表結構

找到項目源碼中doc/db目錄下的tables_xxl_job.sql,用來初始化數據庫表結構。

會創建一個名為xxl_job的數據庫,并且包含了8張以xxl_job開頭的表

xxl_job表

修改項目配置

打開xxl-job-admin項目中的application.properties文件進行后臺的配置,比如配置數據庫連接、配置發送郵件地址等信息。

此時你應該也想到,需要把整個項目納入到自己的代碼倉庫,進行配置修改、環境隔離以及進行部分二開工作。

筆者進行了簡單的改造,將原本的application.properties配置文件進行了拆分:

  • application.properties
  • application-dev.properties
  • application-prod.properties
  • application-test.properties

在application.properties中指定不同環境采用不同的配置文件信息,方便自動化發布。

spring.profiles.active=dev

打包發布

此時可以直接在IDE中執行Spring Boot的main方法來啟動項目,看看效果,也可以打成jar包進行發布。使用過Spring Boot的朋友們應該都知道如何去操作。

這里直接啟動,會發現日志文件找不到,無法啟動程序。原因在logback.xml中的配置:

<property name="log.path" value="/data/applogs/xxl-job/xxl-job-admin.log"/>

最簡單的操作是將該路徑改為本地存在的目錄。但筆者認為將日志路徑寫死在xml文件中并不優化,進一步二開將其提取到配置文件中。

<!--    <property name="log.path" value="/data/applogs/xxl-job/xxl-job-admin.log"/>-->
<springProperty scope="context" name="log.path" source="log.path"/>

不同環境的配置文件添加路徑配置:

log.path=/Users/zzs/temp/xxl-job-admin.log

修改之后,啟動完畢。

訪問:http://localhost:8888/xxl-job-admin

這里筆者將端口進行了修改。默認的用戶名為:admin,密碼為:123456。

登錄成功,主界面顯示如下:

xxl-job-admin

關于admin的部署已經完成,接下來需要先編寫執行器的代碼,然后再通過admin進行調用。

執行器編寫及部署

執行器代碼可直接參考xxl-job-executor-sample-springboot中的實例進行編寫。

本質上就是Spring Boot項目中引入了xxl-job的依賴:

<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${project.parent.version}</version>
</dependency>

然后通過配置類對XxlJobSpringExecutor進行初始化,剩下的就是基于@XxlJob來定義定時任務的JobHandler。

如下便新定義了一個JobHandler:

@Component
public class MyXxlJob {

@XxlJob("helloXxlJobHandler")
public void helloXxlJobHandler() {
String jobParam = XxlJobHelper.getJobParam();
System.out.println("jobParam=" + jobParam);
System.out.println("Hello XXL-Job");
}
}

在啟動之前,先對xxl-job-executor-sample-springboot的配置文件進行修改,除了前面提到的日志文件,還涉及到xxl.job.admin.addresses,修改為admin的地址:

xxl.job.admin.addresses=http://localhost:8888/xxl-job-admin

執行main方法,啟動程序。此時,再回到admin管理頁面的任務管理菜單:

任務管理

點擊右上角新增任務:

新增任務

按照參數說明配置完成,結果如下:

執行

執行完成 ,可在調度日志中查看到執行的歷史。

調度日志

看看控制臺:

jobParam=hello,xxl-job
Hello XXL-Job

程序被成功調用,同時也獲取到了admin傳遞的參數。

此后,該定時任務的執行頻次、執行規則,甚至執行時傳遞的參數都可以通過admin管理平臺進行操作。

小結

經過本文體驗了一把XXL-Job,感覺怎么樣?比在項目中寫死定時任務或在數據庫中配置靈活多了,有管理頁面,有執行歷史,可以靈活配置,甚至可以傳遞調用參數等等功能都是非常實用的。建議你也嘗試一把。


責任編輯:武曉燕 來源: 程序新視界
相關推薦

2022-12-29 08:32:50

xxl-job緩存Schedule

2023-01-04 09:23:58

2023-11-07 07:56:40

2023-11-22 10:07:22

2024-11-06 18:01:15

分布式任務調度組件

2021-12-26 00:03:27

響應式編程異步

2022-09-23 13:57:11

xxl-job任務調度中間件

2021-08-16 15:40:04

分布式架構系統

2020-09-29 19:20:05

鴻蒙

2023-06-26 00:14:28

Openjob分布式任務

2020-07-17 09:33:39

CPU內存調度

2024-08-27 09:34:24

2022-03-26 17:13:22

ElasticJobxxl-job分布式

2024-09-09 08:11:12

2025-06-27 09:31:25

2021-05-31 20:24:16

鴻蒙HarmonyOS應用

2021-11-10 16:10:18

鴻蒙HarmonyOS應用

2020-11-06 12:12:35

HarmonyOS

2023-05-08 16:38:46

任務調度分布式任務調度

2025-01-06 08:53:37

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中国免费黄色片 | 涩涩视频在线观看 | 国产真实乱对白精彩久久小说 | 凹凸日日摸日日碰夜夜 | 中日韩毛片 | 成人三级视频 | 九九在线视频 | 妞干网视频 | 国产亚洲精品精品国产亚洲综合 | 亚洲一区二区三区在线视频 | 综合久久亚洲 | 日韩欧美亚洲综合 | 成人午夜免费福利视频 | 国产高清精品一区二区三区 | 一区二区久久电影 | 欧美黄色一区 | 日日干夜夜干 | 国产一区二区三区久久久久久久久 | 毛片免费观看视频 | 久久黄网 | 在线观看视频亚洲 | 精品欧美 | 国产精品无码专区在线观看 | 日韩手机在线视频 | 国产资源视频 | 久久亚洲国产精品 | 国产一区二区三区免费观看在线 | a国产一区二区免费入口 | 最新中文字幕在线 | 亚洲最大的黄色网址 | 中文字幕免费 | 久久中文视频 | 欧美一区二区大片 | 成人国产综合 | 日韩av免费在线观看 | 国产欧美精品 | 精品国产乱码久久久久久88av | 欧美美女爱爱视频 | 久久视频一区 | 欧美日韩高清免费 | 国产精品福利视频 |