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

Microservices Engine:HTTP ジョブ

最終更新日:Apr 22, 2025

SchedulerX 2.0 は、HTTP ジョブをスケジュールし、サーバーレスモードまたはエージェントモードでジョブを実行できます。コンソールで HTTP ジョブのモードを指定できます。このトピックでは、コンソールで HTTP ジョブを構成する方法について説明します。

前提条件

  • サーバーレスモード:HTTP ジョブは、クラウド関数またはサーバーレスアーキテクチャに基づいて実行されます。このモードは、インターネット経由の API 呼び出しと軽量ジョブに適しています。

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

説明

コンソールで HTTP ジョブを作成する場合は、実行モードとしてサーバーレスモードまたはエージェントモードを選択して、HTTP ジョブを実行できます。

実行モード

次の表は、サーバーレスモードとエージェントモードの違いと使用制限について説明しています。

実行モード

サーバーレスモード

エージェントモード

クライアント統合が必要

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

はい。リクエストは統合されたクライアントによって開始されます。

リクエストメソッド

GET メソッドと POST メソッドがサポートされています。

レスポンス解析

HTTP リクエストへのレスポンスは JSON 形式である必要があります。指定されたキーの解析値が構成値と一致する場合、サーバーはリクエストが成功したと判断します。

秒レベルジョブのサポート

いいえ。分レベルのジョブがサポートされています。

はい。

内部 URL のサポート

いいえ。サーバーレスモードでは、リクエスト URL はインターネットからアクセスできる必要があります。HTTP インターフェースアドレスが IP アドレス:ポート番号の形式である場合、マシンでインターネットアクセスが有効になっている必要があります。

はい。

ジョブ名解析

ジョブ名が中国語の場合、バックエンドは URLDecode.decode(jobName, "utf-8") を使用してデコードできます。

HTTP ジョブを作成する

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

ステップ 1:基本設定を構成する

GET

  1. アクセス可能な 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;
      }
  2. MSE コンソール で HTTP ジョブを作成します。

    次の図は、リクエストメソッドが GET である HTTP ジョブを作成するための「基本設定」ステップの設定を示しています。ジョブの作成方法については、「ジョブを作成する」を参照してください。HTTP Serverles 任务

POST

  1. アクセス可能な 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;
      }
  2. MSE コンソール で HTTP ジョブを作成します。

    次の図は、リクエストメソッドが POST である HTTP ジョブを作成するための「基本設定」ステップの設定を示しています。ジョブの作成方法については、「ジョブを作成する」を参照してください。Serverless HTTP POST

次の表は、サーバーレスモードまたはエージェントモードで HTTP ジョブを作成するためのパラメーターについて説明しています。

説明

サーバーレスモードまたはエージェントモードで HTTP ジョブを作成するためのパラメーターは、MSE コンソールでは同じです。

パラメーター

説明

[タスク名]

ジョブのカスタム名を入力します。

[説明]

検索しやすいように、簡単なビジネス上の説明を入力します。

[アプリケーション ID]

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

[タスクタイプ]

ジョブが実装されている言語を選択します。この例では、ドロップダウンリストから Http を選択します。

[フル URL]

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

[リクエストメソッド]

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

[応答分析モード]

応答解析モードを選択します。有効な値:

  • HTTP 応答コード

    [HTTP 応答コード] パラメーターを指定します。

  • カスタム JSON

    [戻り値チェックキー] パラメーターと [戻り値チェック値] パラメーターを指定します。

    サーバーはデフォルトで JSON 形式の HTTP 応答を受信し、指定されたキーと値に基づいてリクエストが成功したかどうかを確認します。

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

    上記のサンプルコードでは、キーが success、値が true、またはコードが 200 かどうかを確認できます。

  • カスタム文字列

    返された文字列と構成された文字列の一致結果に基づいて、ジョブが成功したかどうかを判断できます。

[応答分析モード][HTTP 応答コード] に設定されている場合:

[HTTP 応答コード]

HTTP ステータスコードを入力します。デフォルト値は 200 です。

[応答分析モード][カスタム JSON] に設定されている場合:

チェックキーを返す

JSON 形式のキーのみが返されます。リクエストが成功した場合、チェックキーが返されます。

[戻り値チェック値]

JSON 形式の値のみが返されます。リクエストが成功した場合、チェック値が返されます。

[応答分析モード][カスタム文字列] に設定されている場合:

[カスタム文字列]

カスタム文字列を入力します。

[実行タイムアウト]

  • サーバーレスモード:Basic Edition の最大タイムアウト期間は 30 秒、Professional Edition の最大タイムアウト期間は 120 秒です。

  • エージェントモード:制限なし。

[ContentType]

[リクエストメソッド] を POST に設定した場合のリクエストボディのデータ形式を選択します。有効な値:

  • application/x-www-form-urlencoded

  • application/json

[POST パラメーター]

[リクエストメソッド] を POST に設定した場合の POST フォームパラメーターを入力します。例:

  • [ContentType]application/x-www-form-urlencoded に設定されている場合は、このパラメーターを key1=value&key2=value2 として指定します。

  • [ContentType]application/json に設定されている場合は、このパラメーターを {"key1":"val1","key2":"val2"} として指定します。

[Cookie]

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

[実行方法]

詳細設定

タスクの失敗時の再試行回数

ジョブが失敗した後の再試行回数を入力します。デフォルト値は 0 です。

タスク失敗時の再試行間隔

ジョブが失敗した後の再試行間隔を入力します。デフォルト値は 30 です。単位:秒。

タスクの同時実行数

同じジョブのインスタンスを同時に実行できる最大数を入力します。値 1 は、繰り返し実行が許可されないことを示します。同時実行数がこのパラメーターの値を超えると、現在のジョブはスケジュールされません。

クリーンアップ戦略

ジョブの履歴レコードをクリアするためのポリシーを選択します。デフォルト値は [保持数] で指定された N に対して「最後の N エントリを保持」です。有効な値:

  • 最後の N エントリを保持

  • ステータスごとに最後の N エントリを保持。

保持数

保持するジョブの履歴レコード数を指定します。デフォルト値は 300 です。

ステップ 2:スケジューリング設定を構成する

[タイミング構成] ステップで、スケジューリングパラメーターと詳細パラメーターを構成し、[次のステップ] をクリックします。

创建任务-定时配置

次の表に、ジョブスケジューリングのパラメーターを示します。

パラメーター

説明

時間タイプ

  • none:スケジューリング方法は使用されません。ほとんどの場合、ジョブはワークフローを使用してスケジュールされます。

  • cron:ジョブは Cron 式を使用してスケジュールされます。

  • api:ジョブは API を使用してスケジュールされます。

  • fixed_rate:ジョブは固定頻度でスケジュールされます。

  • second_delay:ジョブは秒単位の遅延でスケジュールされます。

  • one_time:ジョブは 1 回だけスケジュールされます。

Cron 式 (時間タイプが cron に設定されている場合のみ有効)

Cron 構文に基づいて Cron 式を入力します。ツールを使用して、有効な Cron 式を自動的に生成することもできます。

固定頻度 (時間タイプが fixed_rate に設定されている場合のみ有効)

ジョブがスケジュールされる間隔を入力します。このパラメーターは、[時間タイプ] パラメーターが fixed_rate に設定されている場合のみ有効です。値は 60 より大きい必要があります。単位:秒。たとえば、このパラメーターを 200 に設定すると、ジョブは 200 秒間隔でスケジュールされます。

固定遅延 (時間タイプが second_delay に設定されている場合のみ有効)

固定遅延を入力します。単位:秒。有効な値:1 ~ 60。たとえば、このパラメーターを 5 に設定すると、ジョブは 5 秒の遅延でスケジュールされます。

スケジューリング時間 (時間タイプが one_time に設定されている場合のみ有効)

日付と時刻を選択します。たとえば、このパラメーターを構成して、2025-4-2 12:00:00 に 1 回ジョブをスケジュールします。

詳細構成

時間オフセット

データ処理時間とジョブスケジューリング時間の間のオフセットを入力します。ジョブのスケジューリング中にコンテキストからオフセット値を取得できます。

タイムゾーン

ビジネス要件に基づいて、国または地域のタイムゾーンを選択するか、GMT タイムゾーンを選択します。

カレンダー

ジョブの有効なカレンダーを選択します。有効な値:

  • 毎日のスケジューリング

  • カレンダーを指定する:このオプションを選択した場合は、会計年度または営業日を選択する必要があります。

有効時間

ジョブの有効時間を選択します。有効な値:

  • すぐに有効

  • 開始時間:日付と時刻を選択します。

ステップ 3: 通知設定を構成する

HTTP ジョブはエラー アラートをサポートしています。タイムアウトや予期しない戻り値などの問題が発生した場合、ジョブの作成時にアラート条件を構成して関連する通知情報を受信できます。

  1. [通知設定] ステップで、アラート パラメーターと連絡先を構成し、[完了] をクリックします。

    创建任务-报警配置

  2. ジョブを実行した後、目的のジョブの [操作] 列で [一度だけ実行] をクリックします。

ジョブの基本情報を取得する

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

ジョブが失敗した場合は、[詳細] をクリックして、次の図に示すように具体的な失敗理由を表示します。

  • 戻り値が予期した値と一致しません。返回值和期望不相同

  • ジョブがタイムアウトしました。执行超时