このトピックでは、Spring Boot アプリケーションを SchedulerX に接続する方法について説明します。これには、SchedulerX アプリケーションの作成、必要な接続パラメーターの構成、Spring Boot プロジェクト内でのエージェントの構成、および接続の確認が含まれます。これにより、Spring Boot アプリケーションが SchedulerX で期待どおりに実行され、ジョブの自動スケジューリングと正確な管理が実装されます。
前提条件
任意。名前空間が作成されていること。Spring Boot アプリケーションに高いセキュリティが要求される場合は、名前空間を作成して、アプリケーションのリソースとサービスを他のアプリケーションから分離できます。詳細については、「名前空間の管理」トピックの「名前空間の作成」セクションをご参照ください。
Spring Boot プロジェクトが作成されていること。
概要
Spring Boot アプリケーションを SchedulerX に接続するには、次のステップを実行します。
SchedulerX アプリケーションの作成: SchedulerX でアプリケーションを作成し、SchedulerX に接続するためのパラメーターを取得し、集中型のジョブ管理と構成を実装します。
エージェントを使用して Spring Boot アプリケーションを SchedulerX に接続する: Spring Boot プロジェクトの .properties または .yml ファイルで、SchedulerxWorker に必要なパラメーターを構成し、JobProcessor クラスを作成して Spring Boot アプリケーションを指定された SchedulerX アプリケーションに接続します。
結果の確認: Spring Boot アプリケーションが SchedulerX に接続され、期待どおりに実行されることを確認します。
ステップ 1: SchedulerX アプリケーションの作成
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 通知設定
[通知設定] ウィザードページで、関連情報を入力し、[通知チャネル] を選択して、[連絡先] を設定します。
[通知チャネル] は、[テキストメッセージ]、[メール]、[Webhook]、および [電話] をサポートしています。
[Webhook] の構成の詳細については、「Webhook 設定の説明」をご参照ください。
[通知連絡先] は、連絡先グループと連絡先の 2 つのメソッドをサポートしています。
連絡先グループ
連絡先グループ内のすべての連絡先が通知を受信できます。連絡先グループの作成方法の詳細については、「通知連絡先または通知連絡先グループの作成」をご参照ください。
連絡先
追加された連絡先は通知を受信できます。一度に複数の連絡先を追加できます。[連絡先の追加] の後、[連絡先の作成に移動] をクリックします。

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

構成項目
説明
通知チャネル
次の通知チャネルがサポートされています: [テキストメッセージ]、[メール]、[Webhook]、および [電話]。
メール
連絡先のメールアドレスを入力します。
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 依存関係を追加して、Spring Boot アプリケーションが 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 構成ファイルに、接続情報や認証情報など、SchedulerxWorker に必要なパラメーターを追加します。このようなパラメーターは、Spring Boot アプリケーションが SchedulerX アplication に接続するために必要です。
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 コンソールにログインします。左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。[アプリケーション] ページで、管理するアプリケーションを見つけ、[操作] 列の [アクセス設定] をクリックします。[アクセス設定] パネルで、ドロップダウンリストから [Spring Boot] を選択します。
重要SchedulerX とエージェントが同じリージョンにあるかどうかを確認してください。そうでない場合、エージェントは SchedulerX への接続に失敗します。
Spring Boot アプリケーションが Alibaba Cloud 以外のサーバーまたはオンプレミス環境で実行されている場合は、Spring Boot アプリケーションへのインターネットアクセスを有効にし、インターネットリージョンに 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。名前空間 ID は、SchedulerX コンソールの [名前空間] ページで表示できます。

groupId と appKey: アプリケーションの ID とキー。これらの値は、SchedulerX コンソールの [アプリケーション] ページで表示できます。

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 は、SchedulerX コンソールの [名前空間] ページで表示できます。
N/A
0.1.7
spring.schedulerx2.groupId
アプリケーションの ID。アプリケーション ID は、SchedulerX コンソールの [アプリケーション] ページで表示できます。
N/A
0.1.7
spring.schedulerx2.appKey
アプリケーションのキー。アプリケーションキーは、SchedulerX コンソールの [アプリケーション] ページで表示できます。
N/A
1.2.1
spring.schedulerx2.host
複数の IP アドレスが存在する場合の実際の IP アドレス。エージェントが VPN または複数のネットワークインターフェイスカード (NIC) を使用している場合、複数の IP アドレスが存在する可能性があります。
N/A
0.1.7
spring.schedulerx2.port
エージェントがリッスンするポート。ポートを指定しない場合、システムは利用可能なポートをランダムに選択します。
N/A
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。
N/A
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 モデルですべてのタスクが完了したかどうかを SchedulerX がチェックする間隔。単位: ミリ秒。秒単位のジョブのスケジューリング頻度を上げる場合は、このパラメーターを構成します。
3000
1.2.5.2
spring.schedulerx2.enableSecondDelayCycleIntervalMs
秒単位のジョブでミリ秒精度を有効にするかどうかを指定します。デフォルト値: 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
JobProcessor クラスの作成
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: 結果の確認
Microservices Engine (MSE) コンソールにログインします。左側のナビゲーションウィンドウで、[タスクスケジューリング] > [SchedulerX バージョン] を選択します。[SchedulerX バージョン] ページで、左側のペインにある [アプリケーション] をクリックします。次に、管理するアプリケーションを見つけ、[操作] 列の [インスタンスの表示] をクリックします。

[インスタンスの総数] 列に 0 が表示される場合、アプリケーションは SchedulerX への接続に失敗しています。オンプレミスのアプリケーションを確認し、変更してください。
[インスタンスの総数] 列に 0 以外の整数が表示される場合、アプリケーションは SchedulerX に接続されています。
次のステップ
Spring Boot アプリケーションが SchedulerX に接続された後、SchedulerX コンソールでジョブを作成できます。詳細については、「ジョブ管理」トピックの「ジョブの作成」セクションをご参照ください。
よくある質問
SchedulerX を使用する際のアラートの処理方法の詳細については、「アラートに関するよくある質問」をご参照ください。
Spring ジョブを SchedulerX に接続する方法の詳細については、「Spring ジョブに関するよくある質問」をご参照ください。
SchedulerX の権限と接続の問題の詳細については、「権限に関するよくある質問」および「接続に関するよくある質問」をご参照ください。
リファレンス
エージェントを使用してアプリケーションを SchedulerX に接続する他の方法の詳細については、「エージェントを SchedulerX に接続する」をご参照ください。