分佈式任務調度平臺XXL-JOB快速使用與問題總結

1.XXL-JOB簡介

XXL-JOB is a lightweight distributed task scheduling framework. It's core design goal is to develop quickly and learn simple, lightweight, and easy to expand. Now, it's already open source, and many companies use it in production environments, real "out-of-the-box".java

XXL-JOB是一個輕量級分佈式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。mysql

​ ——引用自XXL-JOB的GIT項目介紹git

QEOvzq.png

​ 關於XXL-JOB的其餘介紹能夠參考官網中文文檔介紹,它含有豐富的特性,支持分佈式和動態任務添加以及權限控制等。github

2.搭建XXL-JOB項目

①下載源碼
https://github.com/xuxueli/xxl-job/
②執行SQL
xxl-job-2.1.1\xxl-job-2.1.1\doc\db\tables_xxl_job.sql
③修改配置
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
### xxl-job, access token 祕鑰填了 下面的子項目要和這個一致
xxl.job.accessToken=

須要注意的是子項目中的配置地址要和admin中的訪問首頁地址一致:spring

### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
④啓動項目

​ 咱們首選須要啓動項目中的admin,而後再啓動xxl-job-executor-samples下面的內容,這裏咱們啓動,這裏比較簡單的方式是經過springboot的例子進行啓動,這也是做者推薦的啓動方式。sql

​ 啓動後訪問調度中心訪問地址:http://localhost:8080/xxl-job-admin (該地址執行器將會使用到,做爲回調地址)數據庫

默認登陸帳號 「admin/123456」, 登陸後運行界面以下圖所示tomcat

QV3nw6.png

關於job的配置能夠參考Demo示例,而後咱們添加時候用BEAN模式,名稱爲@Service的名稱:springboot

/**
 * 任務Handler示例(Bean模式)
 *
 * 開發步驟:
 * 一、繼承"IJobHandler":「com.xxl.job.core.handler.IJobHandler」;
 * 二、註冊到Spring容器:添加「@Component」註解,被Spring容器掃描爲Bean實例;
 * 三、註冊到執行器工廠:添加「@JobHandler(value="自定義jobhandler名稱")」註解,註解value值對應的是調度中心新建任務的JobHandler屬性的值。
 * 四、執行日誌:須要經過 "XxlJobLogger.log" 打印執行日誌;
 *
 * @author xuxueli 2015-12-19 19:43:36
 */
@JobHandler(value="demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {

    @Override
    public ReturnT<String> execute(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.");
        System.out.println("XXL-JOB, Hello World.");
        for (int i = 0; i < 5; i++) {
            XxlJobLogger.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        return SUCCESS;
    }
}

3.問題總結

  • 鏈接不上數據庫?
    須要在admin中配置Datasource相關鏈接,有密碼須要填寫正確。
  • 執行日誌一直處於執行中,回調失敗?
    配置子項目的時候必定要和admin的訪問地址一致,用於回調。
  • 找不到代碼編寫界面?
    GLUE模式只在新增的時候選定了,才能使用界面編寫代碼,支持版本回退。
  • 執行器管理不生效?AppName要和配置裏面的一致,手動添加的地址要和netty對外的端口號一致(不是tomcat秋啓動端口號),默認爲9999。
相關文章
相關標籤/搜索