最詳細的xxl-job java配置方式spring-boot


轉自:https://blog.csdn.net/weixin_44055234/article/details/106565516

————XXL-JOB*是一個輕量級分布式任務調度平台,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。且支持線上編寫調度任務。
如何集成?

去gitee或者github下載源代碼 goto xxl-job

  1. 下載或者克隆后用idea 打開項目或直接用idea克隆項目到本地

在這里插入圖片描述

  1. 在項目的doc文件夾下有個db文件夾 ,db文件夾下的sql腳本是xxl-job運行最基本的數據庫和表,用sqlyol或Navicat
    運行腳本,或者其他方式執行sql腳本

在這里插入圖片描述

  1. 在xxl-job-admin項目中的application.properties中配置相關屬性
    xxl-job-admin是調度器 所以得先啟動,如果執行器啟動找不到調度器會報連接異常
    在這里插入圖片描述

     把剛剛執行sql腳本的數據庫連接和密碼配置到application.properties中
     其他屬性可有所需求在進行配置
    
    • 1
    • 2
  2. 等待idea自動導包完成 然后使用maven工具 先把項目clear 在install 或者xxl-job-admin這個模塊需要的模塊 和調度模塊需要的模塊 install
    install 后jar包會存在自己的本地倉庫,之后可以直接引入

在這里插入圖片描述

  1. 找到xxl-job的啟動類 啟動項目,或者直接打包成jar包 運行也可以
    啟動成功后瀏覽器訪問 http://127.0.0.1:8080/xxl-job-admin 就可以看到登錄頁面
    默認賬號密碼是 admin 123456

在這里插入圖片描述
登錄后
因為之前有測試過所以有數據
在這里插入圖片描述

如何使用? 編寫執行器
6. 新建spring boot 工程 在pom文件中導入坐標

 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.2.1-SNAPSHOT</version> </dependency> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

這兩個坐標是必須的 如果沒有spring-boot-starter-web 會無法啟動

  1. 編寫application.properties中的配置還有logback.xml復制到resources下,這個文件可以自己編寫,為了方便我是從xxl-job-admin模塊下resources文件中拷貝過來的
    在這里插入圖片描述
  2. 編寫配置類來讀取application.properties的配置
    這里我是直接復制xxl-job-admin的配置類
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class XXLJobConfig { private Logger logger = LoggerFactory.getLogger(XXLJobConfig.class); @Value("${xxl.job.admin.addresses}") private String adminAddresses; @Value("${xxl.job.accessToken}") private String accessToken; @Value("${xxl.job.executor.appname}") private String appname; @Value("${xxl.job.executor.address}") private String address; @Value("${xxl.job.executor.ip}") private String ip; @Value("${xxl.job.executor.port}") private int port; @Value("${xxl.job.executor.logpath}") private String logPath; @Value("${xxl.job.executor.logretentiondays}") private int logRetentionDays; @Bean public XxlJobSpringExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppname(appname); xxlJobSpringExecutor.setAddress(address); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor; } /** * 針對多網卡、容器內部署等情況,可借助 "spring-cloud-commons" 提供的 "InetUtils" 組件靈活定制注冊IP; * * 1、引入依賴: * <dependency> * <groupId>org.springframework.cloud</groupId> * <artifactId>spring-cloud-commons</artifactId> * <version>${version}</version> * </dependency> * * 2、配置文件,或者容器啟動變量 * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.' * * 3、獲取IP * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress(); */ } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  1. 編寫需要定時執行的代碼,也就是調度器執行的執行器
    在需要執行的方法加上@XxlJob 注解 並且取名,之后在調度器中好區分,否者無法調度
    注:Returnt<>(200,"…")中 code 200是成功

在這里插入圖片描述

  1. 配置完畢后啟動我們自己創建的工程,在此之前必須啟動xxl-job-admin 否者會報錯
    在xxl-job-admin的管理頁面新增執行器,執行器管理->新增->填寫相關信息
    appname是之前在我們自己工程里application.properties配置的
    名稱可隨便取,只是個區分
    機器地址可手動填寫多個,可做高可用
    如果你的執行器是多個的話他會用appName來區分,多個執行器介意手動填寫

在這里插入圖片描述

  1. 在任務管理中找到剛剛創建的執行器,選中- 新增
    在這里插入圖片描述
    在這里插入圖片描述
    任務參數會傳遞到執行器中
    其他參數見名知意

詳情可查閱官方文檔
在這里插入圖片描述

  1. 創建好任務后可在點擊操作任務,點啟動后執行器就會執行

在這里插入圖片描述

在這里插入圖片描述

配置任務的時候如果運行模式是GLUE 可以在線編寫調度器代碼和腳本,支持多語言
運行后可在運行報表中查看調度情況,也可以查看調度日志

調度器集群
一個調度器在執行另外一個不會干涉
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM