すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:Spring Boot アプリケーションを SchedulerX に接続する

最終更新日:Nov 09, 2025

このトピックでは、Spring Boot アプリケーションを Alibaba Cloud SchedulerX サービスに接続する方法について説明します。アプリケーションの作成、接続パラメーターの設定、Spring Boot プロジェクトでのクライアントの設定と検証方法を学びます。このプロセスにより、アプリケーションが SchedulerX プラットフォームでスムーズに実行され、自動スケジューリングと正確なタスク管理が可能になります。

前提条件

  • オプション。名前空間が作成されていること。アプリケーションに高いセキュリティが必要な場合は、名前空間を作成して、そのリソースとサービスを分離できます。詳細については、「名前空間の作成」をご参照ください。

  • Spring Boot プロジェクトが作成されていること。

概要

Spring Boot アプリケーションを SchedulerX に接続するには、次の手順を実行します。

  1. SchedulerX アプリケーションの作成。SchedulerX でアプリケーションを作成して、接続パラメーターを取得し、タスクを一元的に管理および設定します。

  2. Spring Boot アプリケーションを SchedulerX に接続する。プロジェクトの .properties または .yml ファイルで、SchedulerxWorker に必要なパラメーターを設定し、タスクプロセッサクラスを作成します。

  3. 結果の確認。Spring Boot アプリケーションが接続され、期待どおりに実行されることを確認します。

ステップ 1: アプリケーションの作成

1.1 基本設定

  1. MSE SchedulerX コンソールにログインし、トップナビゲーションバーでリージョンを選択します。

  2. 左側のナビゲーションウィンドウの [アプリケーション管理] ページで、対象の [名前空間] を選択し、[アプリケーションの作成] をクリックします。[アプリケーション名][アプリケーション ID] を入力し、[アプリケーションタイプ] を選択し、必要に応じて詳細設定を構成して、[次へ] をクリックします。

    image

    重要

    選択したリージョンと名前空間にリソースが作成され、リソース情報が有効であることを確認してください。

    設定項目

    説明

    デフォルト値

    アプリケーション名

    アプリケーション名をカスタマイズします。

    なし

    アプリケーション ID

    [アプリケーション ID] は、アプリケーションアクセスの GroupID です。同じ名前空間内で一意である必要があります。そうでない場合、作成は失敗します。[アプリケーション名] と同じにすることができます。

    なし

    アプリケーションタイプ

    • 通常アプリ: アプリケーションが Kubernetes クラスターにデプロイされていない場合、または Kubernetes ジョブを必要としない場合にこのオプションを選択します。

    • k8s アプリ: アプリケーションを Kubernetes クラスターにデプロイし、Kubernetes ジョブを必要とする場合にこのオプションを選択します。

    通常アプリ

    エディション

    要件に基づいてエディションを選択します。

    Professional Edition

    Simple Log Service

    この機能を有効にする場合は、Log4j または Logback の設定を追加します。その後、コンソールで分散ジョブを含むジョブのスケジューリングログを表示して、トラブルシューティングを行うことができます。

    オフ

    load5

    値は、クライアントマシンで利用可能な CPU コアの数より大きくすることはできません。

    0

    メモリ使用量

    過去 5 分間の平均メモリ使用量がこのパラメーターで指定されたしきい値を超えた場合、ワーカーはビジー状態と見なされます。

    90%

    ディスク使用率

    ディスク使用率がこのパラメーターで指定されたしきい値を超えた場合、クライアントマシンはビジー状態と見なされます。

    95%

    ビジーマシンをトリガー

    マシンがビジー状態のときにジョブ実行のトリガーを続行するかどうかを指定します。

    オン

    詳細設定

    最大ジョブ数

    グループでサポートされるジョブの最大数を指定します。

    1000

    自動スケールアウト

    自動スケールアウトを有効にするかどうかを指定します。この機能を有効にする場合は、[グローバルジョブ数] を設定する必要があります。

    オフ

    トラフィックスロットリング

    トラフィックスロットリングを有効にするかどうかを指定します。この機能を有効にする場合は、[タスクインスタンスの同時実行数] を設定する必要があります。

    オフ

    カレンダー

    ドロップダウンリストから [金融日] または [営業日] を選択して、アプリケーションをスケジュールできます。

    • 金融日: 金融ビジネスの取引日。

    • 営業日: 社会、組織、または個人にとって通常の仕事または業務の日。

    0

1.2 通知設定

  1. [通知設定] ウィザードページで、関連情報を入力し、[通知チャネル] を選択して、[連絡先] を設定します。

    • [通知チャネル] は、[テキストメッセージ][E メール][Webhook]、および [電話] をサポートしています。

      [Webhook] の設定の詳細については、「Webhook 設定の説明」をご参照ください。

    • [通知連絡先] は、連絡先グループと連絡先の 2 つのメソッドをサポートしています。

      • 連絡先グループ

        連絡先グループ内のすべての連絡先が通知を受信できます。連絡先グループの作成方法の詳細については、「通知連絡先または通知連絡先グループの作成」をご参照ください。

      • 連絡先

        1. 追加された連絡先は通知を受信できます。一度に複数の連絡先を追加できます。[連絡先の追加] をクリックした後、[連絡先の作成に移動] をクリックします。

        image

        1. 表示されるダイアログボックスで、[連絡先の作成] をクリックし、連絡先情報を入力します。

        image

        設定項目

        説明

        通知チャネル

        次の通知チャネルがサポートされています: [テキストメッセージ][E メール][Webhook]、および [電話]

        E メール

        連絡先の E メールアドレスを入力します。

        Webhook

        • 使用する Webhook URL を入力します。WeCom、Lark、DingTalk がサポートされています。一度に複数の Webhook ロボットを指定することもできます。複数のロボットリンクはコンマ (,) で区切ります。

        • DingTalk ロボットにキーワード "SchedulerX" (大文字と小文字を区別) を追加する必要があります。そうしないと、アラート情報を受信できません。

        • Webhook URL の取得方法の詳細については、「DingTalk 開発者ドキュメント」、「WeCom 開発者ドキュメント」、および「Lark 開発者ドキュメント」をご参照ください。

        携帯電話番号

        連絡先の携帯電話番号を入力します。

  2. 検証

    ページを更新し、指定されたリージョンと名前空間を選択します。次に、作成されたアプリケーションに関する情報を表示します。

ステップ 2: Spring Boot アプリケーションを SchedulerX に接続する

  1. pom.xml ファイルに依存関係を追加する

    Spring Boot アプリケーションの pom.xml ファイルに SchedulerxWorker の依存関係を追加します。これにより、アプリケーションは SchedulerX が提供する機能を使用できるようになります。

    説明

    SchedulerX は、Spring Boot 2.x および 3.x アプリケーションからの接続をサポートしています。

    <dependency>
      <groupId>com.aliyun.schedulerx</groupId>
      <artifactId>schedulerx2-spring-boot-starter</artifactId>
      <version>${schedulerx2.version}</version>
      <!-- Logback を使用する場合は、Log4j と Log4j 2 を除外します。 -->
      <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. パラメーターの設定

    Spring Boot アプリケーションの application.properties 設定ファイルに、SchedulerX アプリケーションに接続するために必要な SchedulerxWorker のパラメーター (接続情報や認証情報など) を追加します。

    spring.schedulerx2.endpoint=${endpoint}
    spring.schedulerx2.namespace=${namespace}
    spring.schedulerx2.groupId=${groupId}
    # appKey パラメーターは、エージェントバージョン 1.2.1 以降でのみサポートされます。
    spring.schedulerx2.appKey=${appKey}
    
    # appKey を使用しない場合は、Alibaba Cloud AccessKey ID と AccessKey Secret、または STS トークンを使用できます。
    #spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey}
    #spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey} 
    #spring.schedulerx2.stsToken=${aliyunStsToken}                   

    パラメーターのソース:

    MSE SchedulerX コンソールの左側のナビゲーションウィンドウにある [アプリケーション管理] ページで、対象アプリケーションの [アクション] 列にある [アクセス設定] をクリックします。次に、サービスタイプとして Spring Boot を選択します。

    image

    重要

    SchedulerX リージョンとエージェントリージョンが同じであることを確認してください。そうでない場合、エージェントは SchedulerX に接続できません。

    アプリケーションが Alibaba Cloud 以外のサーバーまたはオンプレミス環境で実行されている場合は、アプリケーションのインターネットアクセスを有効にし、インターネットリージョンに SchedulerX アプリケーションを作成していることを確認してください。詳細については、「オンプレミス環境からインターネット経由で SchedulerX に接続する」をご参照ください。

    説明

    クライアントアプリケーションに複数のサービスモジュールが含まれている場合、または権限管理のためにスケジュールされたタスクを分離する必要がある場合は、コンソールで複数のアプリケーションを作成して、スケジュールされたタスクの詳細な管理を実装できます。たとえば、クライアントアプリケーション animals の場合、コンソールで animals.dog と animals.cat の 2 つのアプリケーションを作成できます。2 つのアプリケーションに対して別々のインスタンスをリクエストする必要はありません。代わりに、application.properties 設定ファイルで spring.schedulerx2.groupId=${groupId} を指定し、アプリケーション名をコンマで区切るだけで済みます。例: spring.schedulerx2.groupId=animals.dog,animals.cat

    パラメーターの説明

    • endpoint: SchedulerxWorker を初期化するには、アプリケーションがデプロイされているリージョンのエンドポイントを指定する必要があります。詳細については、「エンドポイントリスト」をご参照ください。

    • namespace: 名前空間 ID。コンソールの [名前空間] ページで確認できます。1

    • `groupId` はアプリケーション ID、`appKey` はアプリケーションキーです。これらの値は、コンソールの [アプリケーション管理] ページで取得できます。1

    • aliyunAccessKey と aliyunSecretKey: Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret。ユーザー情報管理コンソールにログインし、[セキュリティ情報管理] ページから AccessKey ペアを取得できます。

    • 次の表に、その他のパラメーターを示します。

      キー

      説明

      設定値

      初期バージョン

      spring.schedulerx2.enabled

      SchedulerX 2.0 のスターターを有効にするかどうかを指定します。デフォルト値: true。設定は不要です。

      true

      false

      0.1.7

      spring.schedulerx2.endpoint

      指定されたリージョンのエンドポイント。詳細については、「エンドポイントリスト」をご参照ください。

      N/A

      0.1.7

      spring.schedulerx2.namespace

      名前空間の UID。コンソールの [名前空間] ページで名前空間 UID を取得できます。

      なし

      0.1.7

      spring.schedulerx2.groupId

      アプリケーションの ID。コンソールの [アプリケーション管理] ページでアプリケーション ID を確認できます。

      N/A

      0.1.7

      spring.schedulerx2.appKey

      アプリケーションキー。コンソールの [アプリケーション管理] ページでアプリケーションキーを確認できます。

      N/A

      1.2.1

      spring.schedulerx2.host

      VPN や複数のネットワークインターフェイスカード (NIC) など、複数の IP アドレスが存在する場合は、実際の IP アドレスを設定します。

      N/A

      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

      異なるクライアントにタグを設定します。タスク管理は、これらのタグをタスク実行に指定できます。これは、カナリアリリースやストレステストなどのシナリオで役立ちます。

      N/A

      1.2.2.2

      spring.schedulerx2.enableCgroupMetrics

      cgroup を使用してクライアントインスタンスのメトリックを収集するかどうかを指定します。デフォルト値: false。Kubernetes コンテナー環境では、この機能をを手動で有効にする必要があります。

      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` レイテンシーの単位としてミリ秒を使用するかどうかを指定します。デフォルト値は false です。このパラメーターを true に設定すると、コンソールは秒レベルのレイテンシーを秒ではなくミリ秒として解釈します。これにより、スケジューリング頻度が向上します。

      true

      false

      1.2.5.2

      spring.schedulerx2.broadcastMasterExecEnable

      プライマリノードがブロードキャストタスク実行に参加するかどうかを指定します。デフォルト値は true です。

      true

      false

      1.8.13

      spring.schedulerx2.broadcastDispatchRetryTimes

      ブロードキャストが失敗した後の最大リトライ回数。デフォルトでは、リトライは実行されません。リトライ間隔は 2 秒に固定されており、設定できません。

      3

      1.8.13

      spring.schedulerx2.enableSecondDelayStandaloneDispatch

      スタンドアロンジョブが毎秒ディスパッチされるかどうかを制御します。デフォルトは false です。

      true

      false

      1.8.13

  3. タスクプロセッサクラスの作成

    Spring Boot アプリケーションに 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);
        }
    }              

ステップ 3: 結果の確認

MSE SchedulerX コンソールにログインします。左側のナビゲーションウィンドウで [アプリケーション管理] をクリックし、対象アプリケーションの [合計インスタンス] を表示します。

image

説明
  • [合計インスタンス] が 0 の場合、アプリケーションの接続に失敗しています。ローカルアプリケーションを確認して変更してください。

  • [合計インスタンス] が 0 ではなく、接続されているインスタンスの数が表示されている場合、アプリケーションは正常に接続されています。

次のステップ

アプリケーションが SchedulerX に接続された後、分散タスクスケジューリングプラットフォームでスケジューリングタスクを作成できます。詳細については、「スケジューリングタスクの作成」をご参照ください。

FAQ

関連ドキュメント

他のクライアント接続タイプの詳細については、「クライアントを SchedulerX に素早く接続する」をご参照ください。