このトピックでは、Spring Boot アプリケーションを Alibaba Cloud SchedulerX サービスに接続する方法について説明します。アプリケーションの作成、接続パラメーターの設定、Spring Boot プロジェクトでのクライアントの設定と検証方法を学びます。このプロセスにより、アプリケーションが SchedulerX プラットフォームでスムーズに実行され、自動スケジューリングと正確なタスク管理が可能になります。
前提条件
オプション。名前空間が作成されていること。アプリケーションに高いセキュリティが必要な場合は、名前空間を作成して、そのリソースとサービスを分離できます。詳細については、「名前空間の作成」をご参照ください。
Spring Boot プロジェクトが作成されていること。
概要
Spring Boot アプリケーションを SchedulerX に接続するには、次の手順を実行します。
SchedulerX アプリケーションの作成。SchedulerX でアプリケーションを作成して、接続パラメーターを取得し、タスクを一元的に管理および設定します。
Spring Boot アプリケーションを SchedulerX に接続する。プロジェクトの .properties または .yml ファイルで、SchedulerxWorker に必要なパラメーターを設定し、タスクプロセッサクラスを作成します。
結果の確認。Spring Boot アプリケーションが接続され、期待どおりに実行されることを確認します。
ステップ 1: アプリケーションの作成
1.1 基本設定
MSE SchedulerX コンソールにログインし、トップナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウの [アプリケーション管理] ページで、対象の [名前空間] を選択し、[アプリケーションの作成] をクリックします。[アプリケーション名] と [アプリケーション ID] を入力し、[アプリケーションタイプ] を選択し、必要に応じて詳細設定を構成して、[次へ] をクリックします。
重要選択したリージョンと名前空間にリソースが作成され、リソース情報が有効であることを確認してください。
設定項目
説明
デフォルト値
アプリケーション名
アプリケーション名をカスタマイズします。
なし
アプリケーション 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 通知設定
[通知設定] ウィザードページで、関連情報を入力し、[通知チャネル] を選択して、[連絡先] を設定します。
[通知チャネル] は、[テキストメッセージ]、[E メール]、[Webhook]、および [電話] をサポートしています。
[Webhook] の設定の詳細については、「Webhook 設定の説明」をご参照ください。
[通知連絡先] は、連絡先グループと連絡先の 2 つのメソッドをサポートしています。
連絡先グループ
連絡先グループ内のすべての連絡先が通知を受信できます。連絡先グループの作成方法の詳細については、「通知連絡先または通知連絡先グループの作成」をご参照ください。
連絡先
追加された連絡先は通知を受信できます。一度に複数の連絡先を追加できます。[連絡先の追加] をクリックした後、[連絡先の作成に移動] をクリックします。

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

設定項目
説明
通知チャネル
次の通知チャネルがサポートされています: [テキストメッセージ]、[E メール]、[Webhook]、および [電話]。
E メール
連絡先の E メールアドレスを入力します。
Webhook
使用する Webhook URL を入力します。WeCom、Lark、DingTalk がサポートされています。一度に複数の Webhook ロボットを指定することもできます。複数のロボットリンクはコンマ (,) で区切ります。
DingTalk ロボットにキーワード "SchedulerX" (大文字と小文字を区別) を追加する必要があります。そうしないと、アラート情報を受信できません。
Webhook URL の取得方法の詳細については、「DingTalk 開発者ドキュメント」、「WeCom 開発者ドキュメント」、および「Lark 開発者ドキュメント」をご参照ください。
携帯電話番号
連絡先の携帯電話番号を入力します。
検証
ページを更新し、指定されたリージョンと名前空間を選択します。次に、作成されたアプリケーションに関する情報を表示します。
ステップ 2: Spring Boot アプリケーションを SchedulerX に接続する
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>。詳細については、「クライアントバージョンのリリースノート」をご参照ください。
パラメーターの設定
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 を選択します。
重要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。コンソールの [名前空間] ページで確認できます。

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

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
タスクプロセッサクラスの作成
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 コンソールにログインします。左側のナビゲーションウィンドウで [アプリケーション管理] をクリックし、対象アプリケーションの [合計インスタンス] を表示します。

[合計インスタンス] が 0 の場合、アプリケーションの接続に失敗しています。ローカルアプリケーションを確認して変更してください。
[合計インスタンス] が 0 ではなく、接続されているインスタンスの数が表示されている場合、アプリケーションは正常に接続されています。
次のステップ
アプリケーションが SchedulerX に接続された後、分散タスクスケジューリングプラットフォームでスケジューリングタスクを作成できます。詳細については、「スケジューリングタスクの作成」をご参照ください。
FAQ
SchedulerX の使用時にアラートを処理する方法については、「アラートに関するよくある質問」をご参照ください。
Spring ジョブを SchedulerX に接続する際の一般的な問題については、「Spring ジョブの問題」をご参照ください。
SchedulerX の権限と接続の問題の詳細については、「権限に関するよくある質問」および「接続に関するよくある質問」をご参照ください。
関連ドキュメント
他のクライアント接続タイプの詳細については、「クライアントを SchedulerX に素早く接続する」をご参照ください。