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

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

最終更新日:Mar 12, 2026

Spring Boot アプリケーションで、定期的なデータ同期、定期的なクリーンアップ、時間指定通知などの分散タスクスケジューリングが必要な場合、SchedulerX は、スケジューリングインフラストラクチャを構築することなく、一元的なスケジューリング、実行モニタリング、および障害アラート機能を提供します。このガイドを完了すると、アプリケーションは SchedulerX ワーカーとして登録され、接続されたインスタンス数が MSE コンソールに表示されます。

事前準備

以下を確認してください。

  • Maven が構成された Spring Boot 2.x または 3.x プロジェクト

  • (オプション) リソースとサービスを環境間で分離するために、MSE コンソールで作成された名前空間。詳細については、「名前空間の作成」をご参照ください。

ワークフローの概要

  1. MSE コンソールで SchedulerX アプリケーションを作成し、接続パラメーター (エンドポイント、名前空間、GroupID、および AppKey) を取得します。

  2. 依存関係を追加し、接続パラメーターとジョブプロセッサクラスを使用して Spring Boot プロジェクトを構成します。

  3. コンソールでインスタンス数を確認して接続を検証します。

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

1.1 基本設定の構成

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

  2. 左側のナビゲーションペインで[アプリケーション管理]をクリックし、[名前空間]を選択して、[アプリケーションの作成]をクリックします。

  3. [アプリケーション名] および [アプリケーションID] を入力し、[アプリケーションタイプ] を選択して、高度な設定を構成します。その後、[次へ] をクリックします。

image
重要

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

次の表は、各フィールドについて説明しています。

フィールド説明デフォルト
Application Nameアプリケーションのカスタム名です。なし
Application IDクライアントアクセス用の GroupID です。名前空間内で一意である必要があります。Application Name と同じ値にすることもできます。なし
Application TypeRegular App:Kubernetes 上にデプロイされず、Kubernetes ジョブを使用しません。k8s App:Kubernetes 上にデプロイされ、Kubernetes ジョブを使用します。Regular App
Edition要件に基づいてエディションを選択します。Professional Edition
Simple Log Serviceコンソールでスケジューリングログ(分散ジョブログを含む)を表示します。アプリケーション内に Log4j または Logback の構成が必要です。Off
load55 分間のロード平均のしきい値です。クライアントマシンの CPU コア数を超えることはできません。0
Memory Usage過去 5 分間の平均メモリ使用率がこのしきい値を超える場合、ワーカーはビジー状態とみなされます。90%
Disk Usageディスク使用率がこのしきい値を超える場合、クライアントマシンはビジー状態とみなされます。95%
Trigger Busy Machineマシンがビジー状態の場合でもジョブ実行をトリガーし続けるかどうかを指定します。On

[高度な設定] を展開して、追加の設定にアクセスします。

フィールド説明デフォルト値
ジョブの最大数グループでサポートされるジョブの最大数です。1000
自動スケールアウトリソースを自動的にスケールアウトします。グローバルジョブ数 の設定が必要です。無効
トラフィック制御過負荷を防ぐためトラフィックを制御します。タスクインスタンス同時実行数 の設定が必要です。無効
カレンダー金融営業日(金融業務における取引日)または 平日(標準的な就業日)に基づくスケジュール設定です。0

1.2 通知の構成

  1. [通知設定] ページで、[通知チャネル] を選択し、[連絡先] を設定します。サポートされている通知チャネルは、[テキストメッセージ][E メール][Webhook][電話] です。Webhook の設定詳細については、「Webhook 設定の説明」をご参照ください。

  2. 通知受信者を追加します。次の表は、各連絡先フィールドについて説明しています。

    • 連絡先グループ: すべてのメンバーが通知を受信します。グループを作成するには、「通知連絡先または通知連絡先グループを作成する」をご参照ください。

    • 連絡先: 個々の受信者を追加します。[連絡先の追加] をクリックし、次に [連絡先を作成] をクリックして、連絡先の詳細を入力します。

    [フィールド][説明]
    通知チャネルサポートされているチャンネル: テキストメッセージメールWebhook、および電話
    E メール連絡先の E メールアドレス。
    WebhookWeCom、Lark、または DingTalk の Webhook URL。複数の URL はコンマ (,) で区切ります。DingTalk の場合、ロボット構成に大文字と小文字を区別するキーワード「SchedulerX」を追加します。詳細については、「DingTalk 開発者ドキュメント」、「WeCom 開発者ドキュメント」、および「Lark 開発者ドキュメント」をご参照ください。
    携帯電話番号連絡先の携帯電話番号。

    image

    image

  3. 通知の構成が完了したら、[アプリケーション管理] ページをリフレッシュし、選択したリージョンと名前空間配下のリストに新しいアプリケーションが表示されることを確認します。

ステップ 2: Spring Boot アプリケーションの接続

2.1 Maven 依存関係の追加

schedulerx2-spring-boot-starter 依存関係を pom.xml に追加します。

<dependency>
    <groupId>com.aliyun.schedulerx</groupId>
    <artifactId>schedulerx2-spring-boot-starter</artifactId>
    <version>1.11.5</version> <!-- 最新バージョンに置き換えてください -->
    <!-- Logback を使用する場合は Log4j を除外してください -->
    <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>
重要

1.11.5 を最新のクライアントバージョンに置き換えてください。バージョン情報については、「クライアントバージョンのリリースノート」をご参照ください。

2.2 接続パラメーターの構成

次のプロパティを application.properties ファイルに追加します。SchedulerxWorker を SchedulerX に接続するには、4 つのパラメーターが必須です。

# --- Required ---
spring.schedulerx2.endpoint=<your-endpoint>       # Regional endpoint (see table below)
spring.schedulerx2.namespace=<your-namespace-id>   # Namespace UID from the Namespaces page
spring.schedulerx2.groupId=<your-group-id>         # Application ID from Application Management
spring.schedulerx2.appKey=<your-app-key>           # Application key (agent 1.2.1+)

# --- Alternative authentication (if not using appKey) ---
# spring.schedulerx2.aliyunAccessKey=<your-access-key-id>
# spring.schedulerx2.aliyunSecretKey=<your-access-key-secret>
# spring.schedulerx2.stsToken=<your-sts-token>

プレースホルダーを実際の値に置き換えてください。

[プレースホルダー][説明]入手先
<your-endpoint>SchedulerX のリージョナルエンドポイント。エンドポイントリスト
<your-namespace-id>名前空間 UID。[名前空間] ページ
<your-group-id>アプリケーション ID (GroupID)。アプリケーション管理コンソールの ページ
<your-app-key>アプリケーションキー。アプリケーション管理コンソールの ページ

接続パラメーターをすばやく見つけるには、[アプリケーション管理] ページに移動し、アプリケーションの[操作] 列にある[アクセス設定] をクリックし、次に[Spring Boot] を選択します。

Access configuration
重要
  • SchedulerX リージョンとエージェントリージョンは一致する必要があります。そうでない場合、エージェントは接続できません。

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

説明

単一クライアント内で複数のアプリケーショングループを管理するには、コンマ区切りの GroupID を使用します: spring.schedulerx2.groupId=animals.dog,animals.cat。各グループはコンソールで個別に作成しますが、同じクライアントインスタンスを共有します。

2.3 ジョブプロセッサの作成

定期タスクを処理するためには、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 を返します。
    }
}

ステップ 3: 接続の検証

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

  2. MSE SchedulerX コンソールにログインします。

  3. 左側のナビゲーションウィンドウで、[アプリケーション管理] をクリックします。正しいリージョンと名前空間を選択します。

  4. アプリケーションの[合計インスタンス数]列を確認してください。

    • 総インスタンス数 > 0: アプリケーションが正常に接続されたことを意味します。この数値は、接続されているワーカーインスタンスの数を表します。

    • [合計インスタンス数 = 0]:接続に失敗しました。構成パラメーターとネットワーク接続を確認してください。

image

次のステップ

接続が成功したら、SchedulerX コンソールで定期タスクを作成します。詳細については、「スケジューリングタスクの作成」をご参照ください。

構成リファレンス

すべての spring.schedulerx2.* プロパティを以下に示します。endpointnamespacegroupId、および appKey のみが必須です。

[プロパティ][説明][デフォルト][バージョン]
spring.schedulerx2.enabledSchedulerX 2.0 スターターを有効または無効にします。true0.1.7
spring.schedulerx2.endpointリージョナルエンドポイント。「エンドポイントリスト」をご参照ください。該当なし0.1.7
spring.schedulerx2.namespace名前空間 ページからの名前空間 UID。なし0.1.7
spring.schedulerx2.groupIdアプリケーション管理 ページからのアプリケーション ID。該当なし0.1.7
spring.schedulerx2.appKey[アプリケーション管理] ページからのアプリケーションキー。該当なし1.2.1
spring.schedulerx2.host複数の IP が存在する場合 (VPN、複数の NIC) の実際の IP アドレス。該当なし0.1.7
spring.schedulerx2.portクライアントリスナーのカスタムポート。設定されていない場合は、ランダムな利用可能なポートが使用されます。なし0.1.7
spring.schedulerx2.blockAppStartSchedulerX の初期化に失敗した場合にアプリケーションの起動をブロックします。true1.1.0
spring.schedulerx2.shareContainerPoolクライアント上のすべてのタスク実行でスレッドプールを共有します。false1.2.1.2
spring.schedulerx2.sharePoolSizeshareContainerPool が有効な場合のスレッドプールサイズ。641.2.1.2
spring.schedulerx2.labelクライアントのタグ。カナリアリリースまたはストレステストのタスク管理で使用します。該当なし1.2.2.2
spring.schedulerx2.enableCgroupMetricscgroup を使用してメトリックを収集します。Kubernetes コンテナ環境で手動で有効にします。false1.2.2.2
spring.schedulerx2.cgroupPathPrefixコンテナ内の cgroup パス。/sys/fs/cgroup/cpu/1.2.2.2
spring.schedulerx2.enableHeartbeatLogハートビートログを ${user.home}/logs/schedulerx/heartbeat.log に書き込みます。true1.2.4
spring.schedulerx2.mapMasterStatusCheckIntervalMap モデルですべてのサブタスクが完了しているかを確認する間隔 (ミリ秒)。値が小さいほど、秒単位のジョブのスケジューリング頻度が増加します。30001.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMssecond_delay レイテンシーを秒ではなくミリ秒で解釈し、スケジューリング頻度を増加させます。false1.2.5.2
spring.schedulerx2.broadcastMasterExecEnableプライマリノードがブロードキャストタスク実行に参加するかどうか。true1.8.13
spring.schedulerx2.broadcastDispatchRetryTimesブロードキャストディスパッチの失敗後の最大再試行回数。再試行間隔は 2 秒に固定されています。31.8.13
spring.schedulerx2.enableSecondDelayStandaloneDispatchスタンドアロンジョブを毎秒ディスパッチします。false1.8.13

よくある質問

関連トピック

その他のクライアント接続方法については、「クライアントを SchedulerX に迅速に接続」をご参照ください。