このトピックでは、Spring アプリケーションを SchedulerX に接続する方法について説明します。この方法で、SchedulerX を使用してアプリケーションのジョブをスケジュールできます。
始める前に
Spring アプリケーションの SchedulerX へのエージェントの接続
アプリケーションの
pom.xml
ファイルに SchedulerxWorker 依存関係を追加します。次のサンプルコードの
schedulerx2.version
をエージェントの最新バージョンに置き換えます。詳細については、「エージェントのリリースノート」をご参照ください。<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx2-worker</artifactId> <version>${schedulerx2.version}</version> <!--logback を使用する場合は、log4j と log4j2 を除外します。--> <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>
XML 設定ファイルに Bean を挿入して、SchedulerxWorker を初期化します。
SchedulerxWorker を初期化するには、アプリケーションがデプロイされているリージョンと一致するエンドポイントを指定する必要があります。詳細については、「エンドポイント」をご参照ください。
namespace は、アプリケーションが属する名前空間の ID を指定します。名前空間 ID は、SchedulerX コンソールの [名前空間] ページで確認できます。
groupId はアプリケーションのグループ ID を指定し、appKey はアプリケーションのキーを指定します。グループ ID とアプリケーションキーは、SchedulerX コンソールの [アプリケーション管理] ページで確認できます。また、アプリケーションの [操作] 列にある [アクセス設定] をクリックして、アクセスモードの設定情報を確認することもできます。
<bean id="schedulerxWorker" class="com.alibaba.schedulerx.worker.SchedulerxWorker"> <property name="endpoint"> <value>${endpoint}</value> </property> <property name="namespace"> <value>${namespace}</value> </property> <property name="groupId"> <value>${groupId}</value> </property> <!--エージェントのバージョンが 1.2.1 以降の場合は、アプリケーションキーを指定する必要があります。--> <property name="appKey"> <value>${appKey}</value> </property> </bean>
説明アプリケーションが複数のサービスを提供する場合、またはアプリケーションのスケジュールジョブを分類する場合は、複数のグループを作成できます。たとえば、アプリケーション
animals
に対してグループanimals.dogs
とanimals.cats
を作成しました。この場合、2 つのグループにワーカーを個別に追加する必要はありません。エージェントの設定でgroupId=
に 2 つのグループを追加できます。例:groupId=animals.dogs,animals.cats
。SchedulerxWorker を初期化するときに、他の設定を追加できます。詳細については、「SchedulerxWorker パラメーター」をご参照ください。
ジョブをスケジュールするために、アプリケーションで
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"); // "hello schedulerx2.0" を出力します。 return new ProcessResult(true); } }
結果の確認
アプリケーションが SchedulerX に接続された後、アプリケーションを Alibaba Cloud に公開します。
SchedulerX コンソール にログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、[アプリケーション管理] をクリックします。
[インスタンスの総数] を [アプリケーション管理] ページで表示します。
[インスタンスの総数] 列に 0 が表示されている場合は、アプリケーションは SchedulerX に接続されていません。オンプレミスアプリケーションを確認して修正してください。
[インスタンスの総数] 列に 0 以外の値が表示されている場合は、アプリケーションは SchedulerX に接続されています。[操作] 列の [インスタンスの表示] をクリックすると、[インスタンスへの接続] パネルにインスタンスが表示されます。
次のステップ
アプリケーションが SchedulerX に接続された後、SchedulerX コンソールでジョブを作成できます。詳細については、「ジョブ管理」トピックの「ジョブの作成」セクションをご参照ください。