すべてのプロダクト
Search
ドキュメントセンター

SchedulerX:HTTP ジョブ

最終更新日:Jun 22, 2026

SchedulerX の HTTP ジョブでは、スケジューリングにエージェントが必要です。サーバーレス実行モードではパブリックドメイン名が必要となり、安定性やセキュリティ上のリスクがあります。そのため、XXL-JOB HTTP ジョブの使用を推奨します。

前提条件

  • サーバーレス実行モード:クラウド関数またはサーバーレスアーキテクチャを使用して HTTP ジョブをトリガーします。このモードは、パブリック API 呼び出しや軽量タスクに適しています。

  • エージェント実行モード:ターゲットデバイスにインストールされた SchedulerX エージェントを使用して HTTP ジョブを実行します。まず SchedulerX エージェントをデプロイする必要があります。このモードは、内部サービス呼び出しや複雑な処理シナリオに適しています。

説明

コンソールで HTTP ジョブを作成する際に、実行モード パラメーターで `serverless` または `agent` を選択できます。

実行モード

次の表は、SchedulerX の HTTP ジョブと MSE-XXLJOB の HTTP ジョブを比較したものです。

SchedulerX サーバーレス (非推奨)

SchedulerX エージェント

MSE-XXL-JOB

クライアント必須

いいえ。リクエストはサーバーによって開始されます。

はい。サーバーがクライアントにコマンドを送信し、クライアントが呼び出しを開始します。

いいえ。リクエストはサーバーによって開始されます。

リクエストメソッド

現在、GET と POST のみがサポートされています。他のメソッドはユーザーの需要に応じてサポートされる予定です。

リクエスト定義

Cookie 設定と POST パラメーターのみをサポートします。

ヘッダー、クエリ、ボディなど、すべての HTTP ジョブパラメーター設定をサポートします。

応答定義

  • HTTP 応答コード:HTTP 応答コードに基づいてジョブの成功を判断します。

  • 応答本文の JSON 解析:応答は JSON フォーマットである必要があります。特定のキーと値のペアによってジョブの成功を判断します。

  • 応答本文:応答は文字列です。本文内の特定の文字列と完全に一致するかどうかでジョブの成功を判断します。

第 2 レベルのスケジューリング

いいえ。分レベルのスケジューリングのみをサポートします。

はい

はい

内部 URL のサポート

いいえ

はい

ドメイン名要件

いいえ

はい。ゲートウェイやドメイン名を必要とせずに Kubernetes Service アクセスをサポートします。

ブロードキャストシャーディングのサポート

いいえ

はい

タスク名の解析

タスク名に中国語の文字が含まれている場合、バックエンドは `URLDecode.decode(jobName, "utf-8")` を使用してデコードできます。

HTTP ジョブの作成

GET または POST リクエストメソッドを使用して HTTP ジョブを作成できます。

ステップ 1:基本設定

GET

  1. アクセス可能な HTTP サービスをデプロイします。

    • すでにアクセス可能な HTTP サービスがある場合は、ステップ 2 に進み、SchedulerX コンソールで 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;
      }
  2. SchedulerX コンソールで HTTP ジョブを作成します。

    以下は、GET HTTP ジョブの関連設定です。スケジュールジョブの作成方法の詳細については、「スケジュールジョブの作成」をご参照ください。次のパラメーターを設定します:[タスク名]http_get に設定し、[タスクタイプ][Http] を選択し、[完全な URL] フィールドにターゲットリクエストアドレスを入力し、[リクエストメソッド][GET] を選択し、[応答解析モード][カスタム JSON] を選択し、[戻り値チェックキー]code を入力し、[戻り値チェック値] に 200 を入力し、[実行タイムアウト]10 秒に設定し、[実行モード][serverless] を選択します。

POST

  1. アクセス可能な HTTP サービスをデプロイします。

    • すでにアクセス可能な HTTP サービスがある場合は、ステップ 2 に進み、SchedulerX コンソールで 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);
          vo.setName(userName);
          RestResult result = new RestResult();
          result.setCode(200);
          result.setData(vo);
          return result;
      }
  2. SchedulerX コンソールで HTTP ジョブを作成します。

    以下は、POST HTTP ジョブの関連設定です。スケジュールジョブの作成方法の詳細については、「スケジュールジョブの作成」をご参照ください。[タスク名]http_post に設定し、[タスクタイプ][Http] を選択し、[完全な URL] フィールドにターゲットインターフェイスアドレスを入力し、[リクエストメソッド][POST] を選択し、[応答解析モード][カスタム JSON] を選択し、[戻り値チェックキー]code を入力し、[戻り値チェック値] に 200 を入力し、[実行タイムアウト]10 秒に設定し、[ContentType][application/x-www-form-urlencoded] を選択し、[POST パラメーター]key1=value1&key2=value2 のフォーマットで入力し、[実行モード][serverless] を選択します。

serverless および agent HTTP ジョブのパラメーター:

説明

SchedulerX コンソールでは、serverless と agent の実行モードの設定パラメーターは同じです。

パラメーター

説明

Name

ジョブのカスタム名です。

Description

将来の検索を容易にするための、ジョブのビジネス目的の簡単な説明です。

Application ID

ジョブが属するグループです。ドロップダウンリストから選択できます。

Job Type

ジョブのタイプです。このシナリオでは、HTTP を選択します。

[完全な URL]

http:// または https:// で始まる完全な URL を入力します。

[リクエストメソッド]

GET または POST を選択します。

[応答解析モード]

応答解析モードを選択します。サポートされているモードは次のとおりです:

  • HTTP 応答コード。

    設定した特定の HTTP 応答コードに基づいてジョブの成功を判断します。

  • カスタム JSON。

    戻り値チェックキーと戻り値チェック値を設定します。

    サーバーは、HTTP リクエストの結果をデフォルトで JSON フォーマットとして扱います。入力されたキーと値に基づいて成功を検証します。

    {
      "code": 200,
      "data": "true",
      "message": "",
      "requestId": "446655068791923614103381232971",
      "success": true
    }

    上記の例では、キー `success` の値が `true` であるか、またはキー `code` の値が `200` であるかを確認することで成功を検証できます。

  • カスタム文字列。

    応答内のカスタム文字列と完全に一致するかどうかでジョブの成功を判断します。

[応答解析モード][HTTP 応答コード] を選択した場合:

[HTTP 応答コード]

期待する HTTP 応答コードを設定します。デフォルトは 200 です。

[応答解析モード][カスタム JSON] を選択した場合:

[戻り値チェックキー]

JSON の戻り値のみをサポートします。成功した応答をチェックするためのキーです。

[戻り値チェック値]

JSON の戻り値のみをサポートします。成功した応答をチェックするための値です。

[応答解析モード][カスタム文字列] を選択した場合:

[カスタム文字列]

カスタム文字列を設定します。

[実行タイムアウト]

  • serverless:Basic エディションでは最大 30 秒、Professional エディションでは最大 120 秒。

  • agent:無制限。

[Content type]

[リクエストメソッド] が POST の場合、リクエストボディのデータ形式を指定します。サポートされている形式:

  • application/x-www-form-urlencoded

  • application/json

[POST パラメーター]

[リクエストメソッド] が POST の場合、POST フォームのパラメーターを指定します。例:

  • [Content type]application/x-www-form-urlencoded の場合:key1=value&key2=value2

  • [Content type]application/json の場合:{"key1":"val1","key2":"val2"}

クッキー

例:key1=val1;key2=val2。複数の値はセミコロン (;) で区切ります。最大長は 300 バイトです。

[実行モード]

  • serverless:サーバーがリクエストを開始するため、パブリックにアクセス可能な URL が必要です。

  • agent:クライアントがリクエストを開始するため、デプロイされた SchedulerX エージェントが必要です。内部 URL を設定できます。このモードは、クライアントバージョン 1.8.2 以降でのみサポートされます。SchedulerX エージェントをデプロイするには、「エージェントアクセス (スクリプトまたは HTTP ジョブ用)」をご参照ください。

詳細設定

Task Failure Retry Count

ジョブが失敗した後にリトライする回数です。デフォルトは 0 です。

Retry Interval

ジョブが失敗した後のリトライ間隔です。デフォルトは 30 秒です。

Task Concurrency

同じジョブのインスタンスが同時に実行できる最大数です。値が 1 の場合、同時実行は防止されます。同時実行数の上限を超えた場合、現在のスケジュールはスキップされます。

Cleanup Policy

ジョブ実行履歴のクリーンアップポリシー。デフォルトでは、Record Count を N として、最後の N 件のレコードを保持します。

  • 最後の N 件のレコードを保持する。

  • ステータスごとに最後の N 件のレコードを保持する。

Record Count

ジョブのために保持する過去の実行レコードの数です。デフォルトは 300 です。

ステップ 2:タイミング設定

セットアップウィザードのSchedule Configuration ページで、タイミングパラメーターと詳細設定パラメーターを設定し、Next をクリックします。

タイミングパラメーターは以下の通りです:

パラメーター

説明

Time Type

  • none:自動スケジューリングを無効にします。ジョブは通常、ワークフローによってトリガーされます。

  • cron:Cron 式。

  • api:API 経由でトリガーされます。

  • fixed_rate:固定頻度。

  • second_delay:秒単位の固定遅延。

  • onetime:1 回限りのジョブ。

Cron Expression (cron 時間タイプのみ)

Cron 式を入力します。Cron 構文に従って直接記述するか、ツールを使用して生成および検証できます。

固定頻度 (fixed_rate 時間タイプのみ)

秒単位で固定頻度を入力します。値は 60 秒以上である必要があります。たとえば、200 を入力すると、200 秒ごとにスケジューリングされます。

固定遅延 (second_delay 時間タイプのみ)

秒単位で固定遅延を入力します。範囲は 1~60 秒です。たとえば、5 を入力すると、スケジュールをトリガーする前に 5 秒間遅延します。

スケジュール時間 (onetime 時間タイプのみ)

日付と時刻を選択します。たとえば、2025-4-2 12:00:00 と設定すると、ジョブが 1 回スケジューリングされます。

詳細設定

時間オフセット

スケジュール時間に対するデータ時間のオフセットです。この値は、スケジューリング中にコンテキストから取得できます。

Time Zone

ニーズに応じて、主要な国やリージョン、標準の GMT フォーマットなど、さまざまなタイムゾーンを選択できます。

Calendar

ジョブの有効なカレンダーを設定します。

  • 毎日スケジューリングします。

  • 金融日や営業日などのカレンダーを指定します。

Effective Time

ジョブの有効期間を設定します。

  • すぐに有効。

  • 開始時刻:開始日時を選択する必要があります。

ステップ 3:通知設定

HTTP ジョブは失敗アラートをサポートしています。タイムアウトや予期しない戻り値などの問題が発生した場合、ジョブ作成時にアラートルールを設定して、対応する通知を受け取ることができます。

  1. セットアップウィザードのNotification Configurationページで、アラートパラメーターと連絡先を設定し、[完了]をクリックします。

    設定可能なパラメーターには、[タイムアウトアラート] (有効)、[タイムアウト期間] (秒単位)、[タイムアウト時に終了] (無効)、[成功通知] (無効)、[失敗アラート] (有効)、[連続失敗回数] (1 に設定)、[利用可能なマシンがない場合のアラート] (有効) があります。[通知チャネルと連絡先] では、[アプリケーショングループの連絡先] または [カスタム] を選択できます。

  2. タスクが正常に作成されたら、[タスク管理] ページに移動し、Run Once を、対象タスクの Actions 列でクリックします。

    ジョブインスタンスレコードの詳細ページで、実行結果とログを確認します。

ジョブの基本情報の取得

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");
    // jobName に中国語の文字が含まれている場合は、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 の基本情報について説明しています。

定数

キー

説明

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」をご参照ください。

ジョブが失敗した場合は、[詳細] をクリックして、以下に示すように具体的な失敗原因を確認します:

  • 戻り値が期待値と異なります。インスタンス詳細ページの [結果またはエラーメッセージ] フィールドに、具体的な失敗原因が表示されます。例えば、エラーメッセージ The returned value is different from the expected value は、返された JSON の "success":false が期待値と一致しないため、ジョブが失敗したことを示します。

  • 実行タイムアウト。HTTP ジョブの実行がタイムアウトすると、インスタンス詳細ページの [結果またはエラーメッセージ] フィールドに java.net.SocketTimeoutException 例外が表示され、ソケット接続タイムアウトを示します。