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

SchedulerX:Spring Boot アプリケーションの SchedulerX への接続

最終更新日:Aug 27, 2026

SchedulerX は、Microservices Engine (MSE) の分散ジョブスケジューリングサービスです。サーバー/エージェントアーキテクチャを採用しており、SchedulerX サーバーがスケジューリングと調整を担い、Spring Boot アプリケーションに組み込まれたエージェントがジョブを実行します。アプリケーションを接続すると、SchedulerX コンソールでジョブの定義、スケジューリング、監視ができます。

前提条件

開始する前に、以下をご確認ください。

  • Spring Boot 2.x または 3.x のプロジェクト

  • (オプション) リソース分離のための名前空間。詳細については、「名前空間の管理」の「名前空間の作成」セクションをご参照ください。

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

基本設定の構成

  1. MSE SchedulerX コンソールにログインし、上部メニューでリージョンを選択します。

  2. 左側のナビゲーションペインで、[Application Management] をクリックします。[Namespace] を選択し、[Create Application] をクリックします。

  3. 以下の設定を入力し、[Next] をクリックします。

    重要

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

    設定 説明 デフォルト
    [Application Name] アプリケーションを識別しやすい名前です。 なし
    [Application ID] エージェントがアクセスするための GroupID です。名前空間内で一意である必要があります。[Application Name] と同じ名前を設定できます。 なし
    [Application Type] [Regular App]:Kubernetes にデプロイされていない、または Kubernetes ジョブを必要としない場合に選択します。[k8s App]:Kubernetes にデプロイされており、Kubernetes ジョブを必要とする場合に選択します。 Regular App
    [Edition] ニーズに応じてエディションを選択します。 Professional Edition
    [Simple Log Service] 有効にすると、コンソールでスケジューリングログを表示できます。Log4j または Logback の設定が必要です。 オフ
    [load5] 5 分間の最大平均負荷です。クライアントマシンの CPU コア数を超えることはできません。 0
    [Memory Usage] 過去 5 分間の平均メモリ使用率がこのしきい値を超えると、ワーカーはビジー状態と見なされます。 90%
    [Disk Usage] ディスク使用率がこのしきい値を超えると、クライアントマシンはビジー状態と見なされます。 95%
    [Trigger Busy Machine] マシンがビジー状態でもジョブのトリガーを継続します。 オン
    設定 説明 デフォルト
    [Maximum Number Of Jobs] グループでサポートされるジョブの最大数です。 1000
    [Automatic Scale-out] 有効にすると自動でスケールアウトします。[Global Job Count] が必要です。 オフ
    [Traffic Throttling] 有効にするとトラフィックをスロットリングします。[Task Instance Concurrency] が必要です。 オフ
    [Calendar] [Financial Day] (取引日) または [Workday] (営業日) でスケジューリングします。 0

    image

通知設定の構成

  1. [Notification Configuration] ページで、[Notification Channel] を選択し、[Contacts] を設定します。連絡先を個別に追加するか、連絡先グループを使用します。連絡先グループを作成するには、「通知の連絡先または通知の連絡先グループの作成」をご参照ください。

    設定 説明
    [Notification Channel] [Text Message][Email][Webhook]、または [Phone]
    [Email] 連絡先のメールアドレスです。
    [Webhook] WeCom、Lark、または DingTalk の Webhook URL です。複数の URL はカンマ (,) で区切ります。DingTalk の場合、ロボット設定にキーワード「SchedulerX」(大文字と小文字を区別) を追加します。Webhook の設定詳細については、「Webhook 設定の説明」をご参照ください。Webhook URL の取得方法については、「DingTalk 開発者ドキュメント」、「WeCom 開発者ドキュメント」、および「Lark 開発者ドキュメント」をご参照ください。
    [Mobile Phone Number] 連絡先の電話番号です。

    image

  2. ページを更新し、選択したリージョンと名前空間にアプリケーションが表示されることを確認します。

ステップ 2:SchedulerX 依存関係の追加

Spring Boot プロジェクトの pom.xml ファイルに schedulerx2-spring-boot-starter の依存関係を追加します。

<dependency>
  <groupId>com.aliyun.schedulerx</groupId>
  <artifactId>schedulerx2-spring-boot-starter</artifactId>
  <version>1.11.5</version>  <!-- 最新バージョンに置き換えてください -->
</dependency>
重要

バージョンを最新のエージェントバージョンに置き換えてください。バージョン履歴については、「Agent リリースノート」をご参照ください。

プロジェクトが Logback を使用している場合は、バンドルされている Log4j の依存関係を除外します。

<dependency>
  <groupId>com.aliyun.schedulerx</groupId>
  <artifactId>schedulerx2-spring-boot-starter</artifactId>
  <version>1.11.5</version>
  <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>

ステップ 3:接続パラメーターの構成

application.properties ファイルに以下のプロパティを追加します。

# 必須: SchedulerX 接続設定
spring.schedulerx2.endpoint=${endpoint}
spring.schedulerx2.namespace=${namespace}
spring.schedulerx2.groupId=${groupId}
# appKey パラメーターはバージョン 1.2.1 以降でのみサポートされます。
spring.schedulerx2.appKey=${appKey}

# appKey を使用しない場合は、Alibaba Cloud AccessKey と SecretKey、または STS トークンを使用できます。
#spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey}
#spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey}
#spring.schedulerx2.stsToken=${aliyunStsToken}

パラメーターの取得方法:

SchedulerX コンソールにログインします。左側のナビゲーションペインで [Applications] をクリックします。管理したいアプリケーションを見つけ、[Operation] 列の [AccessConfig] をクリックします。[AccessConfig] パネルで、ドロップダウンから [Spring Boot] を選択します。

image

パラメーターの説明:

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

  • [名前空間]: アプリケーションが属する名前空間の ID です。名前空間 ID は、SchedulerX コンソールの [名前空間] ページで確認できます。1

  • groupIdappKey: アプリケーションの ID とキーです。SchedulerX コンソールの [アプリケーション] ページで確認できます。1

  • aliyunAccessKeyaliyunSecretKey:Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットです。AccessKey ペアは、ユーザー管理コンソール[Security Management] ページで確認できます。

重要

SchedulerX とエージェントは同じリージョンにある必要があります。リージョンが一致しない場合、接続に失敗します。アプリケーションが Alibaba Cloud の外部 (オンプレミスまたは他のクラウドプロバイダー) で実行する場合は、インターネットアクセスを有効にし、インターネットリージョンで SchedulerX アプリケーションを作成してください。「オンプレミス環境からインターネット経由で SchedulerX に接続」をご参照ください。

アプリケーションが YAML を使用している場合は、代わりにこれらの設定を application.yml ファイルに追加します。

spring:
  schedulerx2:
    endpoint: ${endpoint}
    namespace: ${namespace}
    groupId: ${groupId}
    appKey: ${appKey}
説明

1 つのクライアントから複数のアプリケーションを管理するには、アプリケーション ID をカンマで区切ります:spring.schedulerx2.groupId=animals.dog,animals.cat。各アプリケーションは権限管理のために分離されており、個別のワーカーは必要ありません。

オプションパラメーター

以下のパラメーターは、高度なユースケースをサポートします。

パラメーター 説明 デフォルト サポート開始バージョン
spring.schedulerx2.enabled SchedulerX スターターを有効または無効にします。 true 0.1.7
spring.schedulerx2.host マシンに複数の NIC がある場合や、VPN を使用している場合に IP アドレスを指定します。 自動検出 0.1.7
spring.schedulerx2.port エージェントがリッスンするポートです。 ランダムな利用可能ポート 0.1.7
spring.schedulerx2.blockAppStart SchedulerX の初期化に失敗した場合にアプリケーションの起動をブロックします。 true 1.1.0
spring.schedulerx2.shareContainerPool エージェント上のすべてのジョブで 1 つのスレッドプールを共有できます。 false 1.2.1.2
spring.schedulerx2.sharePoolSize 共有が有効な場合のスレッドプールサイズです。 64 1.2.1.2
spring.schedulerx2.label カナリアリリースやストレステスト中に特定のワーカーをターゲットにするためのラベルです。 なし 1.2.2.2
spring.schedulerx2.enableCgroupMetrics cgroup を使用してエージェントのメトリクスを収集します。Kubernetes 環境では手動で有効にする必要があります。 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 1.2.4
spring.schedulerx2.mapMasterStatusCheckInterval Map モデルでタスクの完了を確認する間隔 (ミリ秒) です。値を小さくすると、秒単位のジョブのスケジューリング頻度が高くなります。 3000 1.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMs 秒単位のジョブ間隔を秒ではなくミリ秒で解釈します。 false 1.2.5.2
spring.schedulerx2.broadcastMasterExecEnable プライマリノードにブロードキャストジョブの実行を要求します。 true 1.8.13
spring.schedulerx2.broadcastDispatchRetryTimes ブロードキャストのディスパッチが失敗した後の最大再試行回数です。再試行間隔は 2 秒に固定されています。 3 1.8.13
spring.schedulerx2.enableSecondDelayStandaloneDispatch 秒単位のスタンドアロンジョブのディスパッチを有効にします。 false 1.8.13

ステップ 4:ジョブプロセッサーの作成

JavaProcessor を継承するクラスを作成して、ジョブのロジックを定義します。次の例では、実行ごとにメッセージを出力します。

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;
import org.springframework.stereotype.Component;

@Component
public class MyHelloJob extends JavaProcessor {

    @Override
    public ProcessResult process(JobContext context) throws Exception {
        System.out.println("hello schedulerx2.0");
        return new ProcessResult(true);  // 成功したことを示すために true を返します
    }
}
  • @Component はクラスを Spring Bean として登録し、SchedulerX がそれを検出できるようにします。

  • JavaProcessor を継承し、process をオーバーライドしてジョブのロジックを定義します。

  • 成功の場合は new ProcessResult(true) を、失敗の場合は new ProcessResult(false) を返します。

ステップ 5:接続の確認

  1. Spring Boot アプリケーションを起動します。

  2. MSE SchedulerX コンソールにログインします。左側のナビゲーションペインで [Applications] をクリックします。

  3. アプリケーションを見つけ、[Operation] 列の [View instances] をクリックします。

    View instances

  4. [Total number of instances] 列を確認します。

    • 0:接続に失敗しました。設定パラメーター (リージョン、エンドポイント、名前空間、GroupID) とネットワーク接続を確認してください。

    • 0 より大きい場合:接続に成功しました。

次のステップ

接続が確認できたら、SchedulerX コンソールでジョブを作成してジョブプロセッサーをトリガーします。「ジョブの管理」の「ジョブの作成」セクションをご参照ください。

トラブルシューティング

症状 考えられる原因 解決策
エージェントの接続失敗 (インスタンス数 0) SchedulerX とエージェントのリージョンの不一致 両方が同じリージョンを使用していることを確認してください。「エンドポイント」を参照して、endpoint の値が正しいことを確認してください。
エージェントの接続失敗 (インスタンス数 0) アプリケーションが Alibaba Cloud の外部で実行されており、インターネットエンドポイントがない インターネットアクセスを有効にし、インターネットリージョンで SchedulerX アプリケーションを作成してください。「インターネット経由での接続」をご参照ください。
エージェントの接続失敗 (インスタンス数 0) GroupID または AppKey が正しくない コンソールで [Applications] > [AccessConfig] を開き、値を確認してください。
アプリケーションの起動がブロックされる SchedulerX が blockAppStart=true (デフォルト) で初期化に失敗した spring.schedulerx2.blockAppStart=false を設定して SchedulerX なしでアプリケーションを起動するか、まず接続の問題を解決してください。

関連ドキュメント