SchedulerX 2.0 は、HTTP ジョブをスケジュールし、サーバーレスモードまたはエージェントモードでジョブを実行できます。コンソールで HTTP ジョブのモードを指定できます。このトピックでは、コンソールで HTTP ジョブを構成する方法について説明します。
前提条件
サーバーレスモード:HTTP ジョブは、クラウド関数またはサーバーレスアーキテクチャに基づいて実行されます。このモードは、インターネット経由の API 呼び出しと軽量ジョブに適しています。
エージェントモード:HTTP ジョブは、目的のデバイスに SchedulerX エージェントがインストールされた後に実行されます。事前にSchedulerX エージェントをデプロイする必要があります。このモードは、内部サービス呼び出しと複雑な処理シナリオに適しています。
コンソールで HTTP ジョブを作成する場合は、実行モードとしてサーバーレスモードまたはエージェントモードを選択して、HTTP ジョブを実行できます。
実行モード
次の表は、サーバーレスモードとエージェントモードの違いと使用制限について説明しています。
実行モード | サーバーレスモード | エージェントモード |
クライアント統合が必要 | いいえ。リクエストは SchedulerX によって開始されます。 | はい。リクエストは統合されたクライアントによって開始されます。 |
リクエストメソッド | GET メソッドと POST メソッドがサポートされています。 | |
レスポンス解析 | HTTP リクエストへのレスポンスは JSON 形式である必要があります。指定されたキーの解析値が構成値と一致する場合、サーバーはリクエストが成功したと判断します。 | |
秒レベルジョブのサポート | いいえ。分レベルのジョブがサポートされています。 | はい。 |
内部 URL のサポート | いいえ。サーバーレスモードでは、リクエスト URL はインターネットからアクセスできる必要があります。HTTP インターフェースアドレスが IP アドレス:ポート番号の形式である場合、マシンでインターネットアクセスが有効になっている必要があります。 | はい。 |
ジョブ名解析 | ジョブ名が中国語の場合、バックエンドは | |
HTTP ジョブを作成する
GET または POST リクエストメソッドを使用して HTTP ジョブを作成できます。
ステップ 1:基本設定を構成する
GET
アクセス可能な HTTP サービスをデプロイします。
アクセス可能な HTTP サービスが既に存在する場合は、ステップ 2 に進んで、MSE コンソールで HTTP ジョブを作成します。目的の HTTP サービスの URL、リクエストメソッド(GET や POST など)、およびその他の関連する構成情報を準備していることを確認してください。
HTTP サービスをデプロイしていない場合は、Java で HTTP インターフェースを開発するための次のサンプルコードを参照してください。
@GET @Path("hi") @Produces(MediaType.APPLICATION_JSON) public RestResult hi(@QueryParam("user") String user) { TestVo vo = new TestVo(); vo.setName(user); RestResult result = new RestResult(); result.setCode(200); result.setData(vo); return result; }
MSE コンソール で HTTP ジョブを作成します。
次の図は、リクエストメソッドが GET である HTTP ジョブを作成するための「基本設定」ステップの設定を示しています。ジョブの作成方法については、「ジョブを作成する」を参照してください。

POST
アクセス可能な HTTP サービスをデプロイします。
アクセス可能な HTTP サービスが既に存在する場合は、ステップ 2 に進んで、MSE コンソールで HTTP ジョブを作成します。目的の HTTP サービスの URL、リクエストメソッド(GET や POST など)、およびその他の関連する構成情報を準備していることを確認してください。
HTTP サービスをデプロイしていない場合は、Java で HTTP インターフェースを開発するための次のサンプルコードを参照してください。
import com.alibaba.schedulerx.common.constants.CommonConstants; @POST @Path("createUser") @Produces(MediaType.APPLICATION_JSON) public RestResult createUser(@FormParam("userId") String userId, @FormParam("userName") String userName) { TestVo vo = new TestVo(); System.out.println("userId=" + userId + ", userName=" + userName); // ユーザーIDとユーザー名を出力 vo.setName(userName); RestResult result = new RestResult(); result.setCode(200); result.setData(vo); return result; }
MSE コンソール で HTTP ジョブを作成します。
次の図は、リクエストメソッドが POST である HTTP ジョブを作成するための「基本設定」ステップの設定を示しています。ジョブの作成方法については、「ジョブを作成する」を参照してください。

次の表は、サーバーレスモードまたはエージェントモードで HTTP ジョブを作成するためのパラメーターについて説明しています。
サーバーレスモードまたはエージェントモードで HTTP ジョブを作成するためのパラメーターは、MSE コンソールでは同じです。
パラメーター | 説明 |
[タスク名] | ジョブのカスタム名を入力します。 |
[説明] | 検索しやすいように、簡単なビジネス上の説明を入力します。 |
[アプリケーション ID] | ドロップダウンリストから、ジョブが属するグループを選択します。 |
[タスクタイプ] | ジョブが実装されている言語を選択します。この例では、ドロップダウンリストから Http を選択します。 |
[フル URL] | http または https で始まる完全な URL を入力します。 |
[リクエストメソッド] | GET または POST を選択します。 |
[応答分析モード] | 応答解析モードを選択します。有効な値:
|
[応答分析モード] が [HTTP 応答コード] に設定されている場合: | |
[HTTP 応答コード] | HTTP ステータスコードを入力します。デフォルト値は 200 です。 |
[応答分析モード] が [カスタム JSON] に設定されている場合: | |
チェックキーを返す | JSON 形式のキーのみが返されます。リクエストが成功した場合、チェックキーが返されます。 |
[戻り値チェック値] | JSON 形式の値のみが返されます。リクエストが成功した場合、チェック値が返されます。 |
[応答分析モード] が [カスタム文字列] に設定されている場合: | |
[カスタム文字列] | カスタム文字列を入力します。 |
[実行タイムアウト] |
|
[ContentType] | [リクエストメソッド] を POST に設定した場合のリクエストボディのデータ形式を選択します。有効な値:
|
[POST パラメーター] | [リクエストメソッド] を POST に設定した場合の POST フォームパラメーターを入力します。例:
|
[Cookie] | 例: |
[実行方法] |
|
詳細設定 | |
タスクの失敗時の再試行回数 | ジョブが失敗した後の再試行回数を入力します。デフォルト値は 0 です。 |
タスク失敗時の再試行間隔 | ジョブが失敗した後の再試行間隔を入力します。デフォルト値は 30 です。単位:秒。 |
タスクの同時実行数 | 同じジョブのインスタンスを同時に実行できる最大数を入力します。値 1 は、繰り返し実行が許可されないことを示します。同時実行数がこのパラメーターの値を超えると、現在のジョブはスケジュールされません。 |
クリーンアップ戦略 | ジョブの履歴レコードをクリアするためのポリシーを選択します。デフォルト値は [保持数] で指定された N に対して「最後の N エントリを保持」です。有効な値:
|
保持数 | 保持するジョブの履歴レコード数を指定します。デフォルト値は 300 です。 |
ステップ 2:スケジューリング設定を構成する
[タイミング構成] ステップで、スケジューリングパラメーターと詳細パラメーターを構成し、[次のステップ] をクリックします。

次の表に、ジョブスケジューリングのパラメーターを示します。
パラメーター | 説明 |
時間タイプ |
|
Cron 式 (時間タイプが cron に設定されている場合のみ有効) | Cron 構文に基づいて Cron 式を入力します。ツールを使用して、有効な Cron 式を自動的に生成することもできます。 |
固定頻度 (時間タイプが fixed_rate に設定されている場合のみ有効) | ジョブがスケジュールされる間隔を入力します。このパラメーターは、[時間タイプ] パラメーターが fixed_rate に設定されている場合のみ有効です。値は 60 より大きい必要があります。単位:秒。たとえば、このパラメーターを 200 に設定すると、ジョブは 200 秒間隔でスケジュールされます。 |
固定遅延 (時間タイプが second_delay に設定されている場合のみ有効) | 固定遅延を入力します。単位:秒。有効な値:1 ~ 60。たとえば、このパラメーターを 5 に設定すると、ジョブは 5 秒の遅延でスケジュールされます。 |
スケジューリング時間 (時間タイプが one_time に設定されている場合のみ有効) | 日付と時刻を選択します。たとえば、このパラメーターを構成して、 |
詳細構成 | |
時間オフセット | データ処理時間とジョブスケジューリング時間の間のオフセットを入力します。ジョブのスケジューリング中にコンテキストからオフセット値を取得できます。 |
タイムゾーン | ビジネス要件に基づいて、国または地域のタイムゾーンを選択するか、GMT タイムゾーンを選択します。 |
カレンダー | ジョブの有効なカレンダーを選択します。有効な値:
|
有効時間 | ジョブの有効時間を選択します。有効な値:
|
ステップ 3: 通知設定を構成する
HTTP ジョブはエラー アラートをサポートしています。タイムアウトや予期しない戻り値などの問題が発生した場合、ジョブの作成時にアラート条件を構成して関連する通知情報を受信できます。
[通知設定] ステップで、アラート パラメーターと連絡先を構成し、[完了] をクリックします。

ジョブを実行した後、目的のジョブの [操作] 列で [一度だけ実行] をクリックします。
ジョブの基本情報を取得する
HTTP ジョブの基本情報はヘッダーに含まれています。ジョブの基本情報を取得するには、アプリケーションの pom.xml ファイルに次の依存関係を追加する必要があります。
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-common</artifactId>
<version>1.6.0</version>
</dependency>GET メソッドを例にとります。次のコードを使用して、ジョブの基本情報を取得できます。
import com.alibaba.schedulerx.common.constants.CommonConstants;
@GET
@Path("hi")
@Produces(MediaType.APPLICATION_JSON)
public RestResult hi(@QueryParam("user") String user,
@HeaderParam(CommonConstants.JOB_ID_HEADER) String jobId,
@HeaderParam(CommonConstants.JOB_NAME_HEADER) String jobName) {
TestVo vo = new TestVo();
vo.setName("armon");
// ジョブ名が中国語の場合、URL デコードが必要です。
String decodedJobName = URLDecoder.decode(jobName, "utf-8");
System.out.println("user=" + user + ", jobId=" + jobId + ", jobName=" + decodedJobName);
RestResult result = new RestResult();
result.setCode(200);
result.setData(vo);
return result;
}ジョブの定数の定義と説明
次の表に、ジョブの CommonConstants における定数の基本情報を示します。
CommonConstants の定数 | キー | 値の説明 |
JOB_ID_HEADER | schedulerx-jobId | ジョブの ID。 |
JOB_NAME_HEADER | schedulerx-jobName | ジョブの名前。英語名がサポートされています。 |
SCHEDULE_TIMESTAMP_HEADER | schedulerx-scheduleTimestamp | ジョブがスケジュールされたときのタイムスタンプ。 |
DATA_TIMESTAMP_HEADER | schedulerx-dataTimestamp | ジョブデータが処理されたときのタイムスタンプ。 |
GROUP_ID_HEADER | schedulerx-groupId | アプリケーションの ID。 |
USER_HEADER | schedulerx-user | ユーザー名。 |
MAX_ATTEMPT_HEADER | schedulerx-maxAttempt | インスタンスの最大再試行回数。 |
ATTEMPT_HEADER | schedulerx-attempt | インスタンスの現在の再試行回数。 |
JOB_PARAMETERS_HEADER | schedulerx-jobParameters | ジョブパラメーター。 |
INSTANCE_PARAMETERS_HEADER | schedulerx-instanceParameters | ジョブインスタンスパラメーター。API 呼び出しが必要です。 |
結果の確認
HTTP ジョブの実行結果は、実行リストでクエリできます。成功した結果については、「GET」をご参照ください。
ジョブが失敗した場合は、[詳細] をクリックして、次の図に示すように具体的な失敗理由を表示します。
戻り値が予期した値と一致しません。

ジョブがタイムアウトしました。
