Xxl-job安裝部署以及SpringBoot整合Xxl-job使用

2023-04-25 12:00:59

1、安裝Xxl-job:

可以使用docker拉取映象部署和原始碼編譯兩種方式,這裡選擇原始碼編譯安裝。

程式碼拉取地址:

https://github.com/xuxueli/xxl-job/tree/2.1.2

官方開發檔案:

https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B

2、開啟專案

使用Maven開啟專案,下載相關的jar包依賴。設定相關組態檔

/xxl-job/xxl-job-admin/src/main/resources/application.properties

這裡可以參考官方開發檔案進行設定。

3、初始化資料庫

專案中包含資料庫檔案路徑

/xxl-job/doc/db/tables_xxl_job.sql

4、打包部署專案

使用maven進行打包,排除test。

執行package:

打包成功。

5、啟動編譯過後的Jar包檔案

輸出以上內容,xxl-job啟動成功。

排程中心存取地址:http://localhost:8080/xxl-job-admin (該地址執行器將會使用到,作為回撥地址)

預設登入賬號 「admin/123456」, 登入後執行介面如下圖所示。

至此「排程中心」專案已經部署成功。如果還有其他不懂的請參考相關檔案:

https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B

6、SpringBoot整合Xxl-job使用

獲取XxlJobConfig組態檔,參考Xxl-job原始碼列示:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
 maven依賴:
<!-- xxl-job-core xxl-job需要的包-->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.1.2</version>
</dependency>
xxl-job組態檔資訊:
@Bean
public XxlJobSpringExecutor xxlJobExecutor() { log.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppName(appName); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor; }
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
 

 設定spring boot設定application.yml檔案資訊:

xxl:
  job:
    executor:
      #執行器app的名稱,和控制檯保持一致
      appname: xxl-job-executor-sample
      #有效使用該地址作為註冊地址 為空使用內嵌服務地址
      address:
      #執行器IP 預設自動獲取
      ip: localhost
      #執行器埠 小於等於0 自動獲取 ,預設 9999 ,設定多個執行器時,需要設定不同的執行器埠
      port: 9999
      #執行器紀錄檔保持天數 -1永久生效
      logretentiondays: 30
      #執行器紀錄檔檔案保持地址 ,為空使用預設儲存地址
      logpath: D:/idea-project/data/xxl-job-log/executor
    admin:
      #排程中心部署地址,多個設定 ,分割
      addresses: http://127.0.0.1:8080/xxl-job-admin
      #執行器token
    accessToken:

控制檯輸出以下內容表示註冊成功:

如果輸出以下資訊,表示註冊失敗,需要重新檢測組態檔資訊:

登入任務排程中心 -->執行器管理 ,可以檢視是否註冊成功。

顯示上面資訊,表示註冊成功。

7、設定MyJobHandle執行任務檔案:

@Component
public class MyJobHandle {

    @Autowired
    private IUserService userService;

    /**
     * xxl-job-core最新版本2.1.2中@JobHandler註解已過時,取而代之的是@XxlJob註解,也不需要去繼承IJobHandler類。
     *
     * @param param  排程平臺接收的引數資訊
     */
    @XxlJob("syncUser")
    public ReturnT<String> syncUser(String param){
        System.out.println("--------------->>引數為\t"+param);
        XxlJobLogger.log("xxl-job啟動成功 ,歡迎使用xxl-job同步資料 。。。 syncUser");

        List<User> userList = userService.userList();
        userList.forEach(System.out::println);

        return ReturnT.SUCCESS;
    }
}

登入任務排程中心-->任務管理 ,新增任務。

新增成功點選執行按鈕,啟動任務:

檢視執行結果:排程紀錄檔

說明任務執行成功。在來檢視後臺控制檯輸出:

輸出內容,說明任務設定成功了。

以上就是xxl-job使用的簡單案例,想要學習更多內容可以去官網地址進行學習。