全部產品
Search
文件中心

SchedulerX:Spring Boot應用接入SchedulerX

更新時間:Oct 24, 2025

本文介紹如何將Spring Boot應用接入阿里雲的SchedulerX服務,指導您從建立應用入手,配置必要的接入參數,再到Spring Boot專案中進行用戶端的設定和驗證,確保您的應用順利運行在SchedulerX平台上,實現任務的自動化調度和精準管理。

前提條件

  • (可選)建立命名空間。當您的應用有較高的安全要求時,您可通過建立命名空間實現資源和服務的隔離,具體操作請參見建立命名空間

  • 已有SpringBoot專案。

方案概覽

將Spring Boot應用快速接入SchedulerX分為以下幾步:

  1. 建立應用:在阿里雲SchedulerX中建立應用,擷取接入SchedulerX配置參數,並對任務進行統一管理和配置。

  2. 用戶端接入SchedulerX:在專案中的properties或者yml中,配置SchedulerxWorker所需要的參數並建立任務處理類,串連指定的SchedulerX應用。

  3. 結果驗證:確認SpringBoot應用接入成功並正常運行。

步驟一:建立應用

1.1基本配置

  1. 登入MSE SchedulerX控制台,並在頂部功能表列選擇地區。

  2. 在左側導覽列的應用管理頁面。選擇所屬命名空間後,單擊建立應用。輸入應用程式名稱應用ID並選擇應用類型,按需設計進階配置,單擊下一步

    image

    重要

    注意在指定地區和命名空間,建立資源資訊,確保資源資訊準確性。

    配置項

    描述

    預設值

    應用程式名稱

    自訂設定應用程式名稱。

    應用ID

    應用ID為應用接入的GroupID,保證同一個命名空間下唯一,否則將建立失敗,可以和應用程式名稱一致。

    應用類型

    • 普通應用:非K8s部署的應用,或者對K8s任務沒有需求。

    • K8s應用:應用通過K8s部署,並且有需求要使用K8s任務。

    普通應用

    版本

    根據需求選擇版本。

    專業版

    Log Service

    開啟後,增加一個Log4j或Logback的配置,即可在控制台看到每次任務調度(包括分布式任務)的業務日誌,方便排查問題。

    關閉

    load5

    不能超過用戶端機器CPU可用核心數

    0

    記憶體使用量率

    表示近5分鐘進程記憶體平均使用率不能大於該閾值,否則判斷用戶端機器繁忙。

    90%

    磁碟使用率

    表示磁碟使用率不能大於該值,否則判斷用戶端機器不健康,狀態繁忙。

    95%

    是否觸發繁忙機器

    機器繁忙時是否繼續觸發用戶端執行。

    開啟

    進階配置

    任務最大數量

    一個分組最多支援的Job數量。

    1000

    自動擴容

    選擇是否自動擴容。開啟時,需要設定全域任務數

    關閉

    流控

    選擇是否流控。開啟時,需要設定任務執行個體並發數

    關閉

    日曆

    選擇每天調度指定日曆,指定日曆支援選擇金融日或者工作日。

    • 金融日:特指金融業務的交易日。

    • 工作日:社會、組織或個人日常活動中正常工作和經營的日期。

    0

1.2通知配置

  1. 通知配置嚮導頁填寫相關資訊,選擇通知渠道並設定連絡人

    • 通知渠道目前支援簡訊郵件Webhook電話

      關於Webhook配置的詳細資料,請參見webhook配置說明

    • 通知連絡人支援連絡人群組、連絡人兩種方式。

      • 連絡人群組

        連絡人群組下所有連絡人都可以接收到通知。關於建立連絡人群組,請參見建立通知連絡人

      • 連絡人

        1. 添加的連絡人可以接收到通知。支援設定多個通知連絡人。新增連絡人...後,單擊前往建立連絡人

        image

        1. 在彈出頁面中單擊建立連絡人後,輸入連絡人資訊。

        image

        配置項

        描述

        通知渠道

        目前支援簡訊郵件Webhook電話

        郵件

        輸入通知連絡人的真實郵件地址。

        Webhook

        • 目前支援企業微信、飛書、DingTalk三種。且可以同時配置多個Webhook機器人,機器人連結用英文逗號(,)分割。

        • 需要在DingTalk機器人增加關鍵字“SchedulerX”(區分大小寫),否則會收不到警示資訊。

        • 擷取Webhook的方法請參見DingTalk開發文檔企業微信開發文檔飛書開發文檔

        手機號

        輸入連絡人的真實手機號碼。

  2. 驗證

    重新整理頁面,確定指定地區和命名空間,查看已建立的應用資訊。

步驟二:用戶端接入SchedulerX

  1. 在pom.xml增加依賴配置

    在SpringBoot應用程式的pom.xml檔案中添加SchedulerxWorker依賴,以便在Spring Boot應用程式中使用SchedulerX提供的功能。

    說明

    SchedulerX支援SpringBoot2.x和3.x版本接入。

    <dependency>
      <groupId>com.aliyun.schedulerx</groupId>
      <artifactId>schedulerx2-spring-boot-starter</artifactId>
      <version>${schedulerx2.version}</version>
      <!--如果使用logback,需要將log4j和log4j2排除 -->
      <exclusions>
        <exclusion>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>                   
    重要

    <version>${schedulerx2.version}</version>替換為最新用戶端版本。例如:<version>1.11.5</version>。更多資訊,請參見用戶端版本發布記錄

  2. 配置參數

    在SpringBoot應用的設定檔application.properties中添加SchedulerXWorker所需要的參數,例如串連資訊、認證資訊等,以便串連到SchedulerX應用。

    spring.schedulerx2.endpoint=${endpoint}
    spring.schedulerx2.namespace=${namespace}
    spring.schedulerx2.groupId=${groupId}
    # 僅1.2.1及以上版本支援配置appKey
    spring.schedulerx2.appKey=${appKey}
    
    # 如果不使用appKey,可以使用阿里雲AK/SK,或者使用stsToken
    #spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey}
    #spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey} 
    #spring.schedulerx2.stsToken=${aliyunStsToken}                  

    參數來源:

    分布式任務調度平台左側導覽列的應用管理頁面,單擊目標應用操作列的接入配置,選擇接入的服務類型為Spring Boot。

    image

    重要

    檢查SchedulerX地區和用戶端地區是否保持一致,否則會造成建立串連失敗。

    若您使用的是非阿里雲伺服器或本地環境,確保您已開放公網存取權限,並在任務調度平台公網地區建立應用。具體資訊,可參見在本地接入公網環境

    說明

    如果您的用戶端應用程式套件含多個業務,或者需要將定時任務隔離做許可權管理,可以通過在控制台上建立多個應用,實現定時任務的精細化管理。例如,用戶端應用animals在控制台上建立了animals.dog和animals.cat兩個應用,無需為兩個應用分別申請執行個體,只需在設定檔application.properties中,通過配置spring.schedulerx2.groupId=${groupId},並以逗號分隔多個應用來實現,如:spring.schedulerx2.groupId=animals.dog,animals.cat

    參數說明:

    • endpoint:初始化SchedulerxWorker時,將使用您部署應用的地區(Region)和對應的endpoint。更多資訊,請參見Endpoint列表

    • namespace:命名空間ID,可以在控制台的命名空間頁面擷取。1

    • groupId和appKey:groupId應用ID,appKey為應用key,可以在控制台應用管理頁面擷取。1

    • aliyunAccessKey和aliyunSecretKey:aliyunAccessKey為阿里雲帳號的AccessKeyID,aliyunSecretKey為阿里雲帳號的AccessKeySecret。您可以登入使用者資訊管理主控台,在安全資訊管理頁面擷取。

    • 更多參數請參見下表:

      key

      描述

      設定值

      起始版本

      spring.schedulerx2.enabled

      是否啟用SchedulerX 2.0的starter。預設為true,無需設定。

      true

      false

      0.1.7

      spring.schedulerx2.endpoint

      設定Region所在的Endpoint。更多資訊,請參見Endpoint列表

      0.1.7

      spring.schedulerx2.namespace

      設定命名空間的UID,可以在控制台命名空間頁面擷取。

      0.1.7

      spring.schedulerx2.groupId

      應用ID,可以在控制台應用管理頁面擷取。

      0.1.7

      spring.schedulerx2.appKey

      應用Key,可以在控制台應用管理頁面擷取。

      1.2.1

      spring.schedulerx2.host

      如果有多個IP(例如VPN或者多網卡),可以設定真實的IP。

      0.1.7

      spring.schedulerx2.port

      使用者自訂用戶端監聽連接埠。如果不設定,則隨機播放一個可用連接埠。

      0.1.7

      spring.schedulerx2.blockAppStart

      SchedulerX初始化失敗是否阻塞應用啟動。預設為true。

      true

      false

      1.1.0

      spring.schedulerx2.shareContainerPool

      用戶端所有任務執行是否共用線程池。預設為false。

      true

      false

      1.2.1.2

      spring.schedulerx2.sharePoolSize

      如果開啟共用線程池,可以自訂線程池大小。預設為64。

      1.2.1.2

      spring.schedulerx2.label

      不同用戶端可以設定標籤,任務管理可以指定標籤執行。應用於灰階、壓測等情境。

      1.2.2.2

      spring.schedulerx2.enableCgroupMetrics

      是否使用cgroup統計用戶端執行個體的指標。容器(K8s)環境需要手動開啟,預設為false。

      true

      false

      1.2.2.2

      spring.schedulerx2.cgroupPathPrefix

      容器內cgroup的路徑。

      預設路徑為/sys/fs/cgroup/cpu/,如果存在該路徑則不需要設定。

      1.2.2.2

      spring.schedulerx2.enableHeartbeatLog

      是否列印心跳日誌,${user.home}/logs/schedulerx/heartbeat.log

      預設為true。

      true

      false

      1.2.4

      spring.schedulerx2.mapMasterStatusCheckInterval

      設定Map模型檢測所有子任務結束的頻率,單位毫秒。如果秒層級任務需要加快調度頻率時,可以設定。

      3000

      1.2.5.2

      spring.schedulerx2.enableSecondDelayCycleIntervalMs

      設定second_delay延遲的單位為毫秒。如果將該值設定為true,控制台設定的秒層級延遲將會變成毫秒,可以加快調度頻率,預設為false。

      true

      false

      1.2.5.2

      spring.schedulerx2.broadcastMasterExecEnable

      主節點是否參與廣播任務執行。預設為true。

      true

      false

      1.8.13

      spring.schedulerx2.broadcastDispatchRetryTimes

      廣播分發失敗重試次數,預設不重試;稍候再試預設2s,且不可配置。

      3

      1.8.13

      spring.schedulerx2.enableSecondDelayStandaloneDispatch

      是否開啟秒層級單機任務分發執行,預設為false。

      true

      false

      1.8.13

  3. 建立任務處理類

    在SpringBoot應用中建立JobProcessor類,實現任務調度。

    下方範例程式碼介紹如何定時列印一個簡單的JobProcessor類(樣本包名:hello schedulerx2.0)。

    package com.aliyun.schedulerx.test.job;
    
    import com.alibaba.schedulerx.worker.domain.JobContext;
    import com.alibaba.schedulerx.worker.processor.JavaProcessor;
    import com.alibaba.schedulerx.worker.processor.ProcessResult;
    
    @Component
    public class MyHelloJob extends JavaProcessor {
    
        @Override
        public ProcessResult process(JobContext context) throws Exception {
            System.out.println("hello schedulerx2.0");
            return new ProcessResult(true);
        }
    }              

步驟三:結果驗證

登入分布式任務調度平台,在左側導覽列的應用管理,單擊目標應用操作列的查看執行個體,查看執行個體詳情資訊。

image

說明
  • 如果執行個體總數為0,說明應用接入失敗。請檢查並修改本地應用。

  • 如果執行個體總數不為0,顯示接入執行個體個數,說明應用接入成功。

後續步驟

應用接入SchedulerX完成後,即可在分布式任務調度平台建立調度任務。更多資訊,請參見建立調度任務

常見問題

相關文檔

如您想瞭解其他用戶端接入方式,請參見用戶端快速接入SchedulerX