カスタム・ジョブの Java クラスの実装
カスタム・ジョブは 1 つの機能を実行するユーザー定義のジョブです。 これは、手動またはスケジュールで実行できる Java™ クラスとして実装されます。
カスタム・ジョブは、各 OpenPages® アプリケーション・サーバーにデプロイする必要があり、始動時に動的にロードされます。
- 以下の抽象実装を拡張して、カスタム・ジョブ Java クラスを作成します。
com.ibm.openpages.api.scheduler.AbstractScheduledProcess - クラスを JAR ファイルに追加します。 この JAR ファイルは、すべてのカスタム・コードに使用します。 <OP_HOME>/aurora/op-ext-libディレクトリー内の各OpenPagesアプリケーション・サーバーに JAR ファイルをデプロイします。
- OpenPages アプリケーション・サーバーを再始動して、動的クラス・ローダーがカスタム・ジョブを取得できるようにします。
- スケジューラー を使用して、Java クラスを使用するカスタム・ジョブを追加します。 カスタム・ジョブで入力として必要とするプロパティー値やフィールドがあれば設定します。 詳しくは、 カスタム・ジョブの定義を参照してください。
カスタム・ジョブへの構成情報の提供
カスタム・ジョブを有益にするには、構成情報が必要な場合があります。 例えば、別のサービスに接続する必要がある場合は、API キーの認識が可能である必要があります。 これらの値は、 スケジューラー のカスタム・ジョブで構成項目として定義され、実行時にカスタム・ジョブに渡されます。
構成アイテムはストリング名と値のペアであり、ユーザーが定義するものです。
このカスタム・ジョブでは、渡されるべきプロパティーが渡され、有効な値が指定されていることを検証する必要があります。
カスタム・ジョブ Java クラスのオーサリング
カスタム・ジョブ Java クラスの唯一の要件は、 com.ibm.openpages.api.scheduler.AbstractScheduledProcessを拡張することです。 この要件は、カスタム・ジョブが スケジューラーで定義されるときに検証されます。
setName()への呼び出しを行います。 例えば、以下のコードは、My
Custom Jobという名前のカスタム・ジョブを作成します。public class CustomJob extends AbstractScheduledProcess {
public CustomJob() {
super(ProcessConstants.TYPE_GENERAL);
setName("My Custom Job");
}execute という名前の AbstractScheduledProcess からの単一の抽象 API を、派生した Java クラスに実装する必要があります。 このメソッド内に、カスタム・ジョブが実行する機能を書き込みます。void execute(){
//add your custom code here
}ジョブの構成値にアクセスするには、以下を呼び出します。
this.jobDetail.getJobConfiguration();
カスタム・ジョブで使用できる OpenPages GRC API について詳しくは、 IBM OpenPages with Watson API Javadocを参照してください。 Javadoc へのリンクについては、 OpenPages API 資料を参照してください。
カスタム・ジョブから例外または検証のメッセージをスローし、ユーザーに表示することができます。 メッセージを表示するには、以下を使用します。
throwException(String message, Throwable cause)
このメソッドを使用して例外をスローし、ユーザーにカスタム・メッセージを表示します。 キャッチされていない例外、または明示的にスローされた例外はアプリケーションによってログに記録されますが、ユーザーに表示されるのは一般エラー・メッセージだけです。
ジョブのタイムアウトの設定
すべてのスケジューラー・ジョブのデフォルト・タイムアウトは、 設定で定義されます。 カスタム・ジョブのこのタイムアウト設定をオーバーライドできます。
カスタム・ジョブのタイムアウトを設定するには、ジョブのコンストラクターでsetName()によって定義されるカスタム・ジョブ名が必要です。 を設定してタイムアウトを定義します。
例: 。