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

SchedulerX:HTTP ジョブ

最終更新日:Apr 22, 2025

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

前提条件

  • サーバーレス:HTTP ジョブは、クラウド関数またはサーバーレスアーキテクチャを使用して実行されます。このモードは、インターネット経由の API 呼び出しが必要で、少数のジョブを伴うシナリオに適しています。

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

説明

コンソールで HTTP ジョブを作成するときに、実行方法 パラメーターを serverless または agent に設定できます。

実行モード

次の表に、サーバーレスモードとエージェントモードの違いと制限を示します。

実行モード

サーバーレス

エージェント

必要なクライアント

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

はい。リクエストは、ジョブに接続されているクライアントによって開始されます。

リクエストメソッド

GET と POST のみがサポートされています。

レスポンスの解析

HTTP レスポンスは JSON 形式である必要があります。サーバーは、戻りキーが指定されたキーと同じかどうかを確認して、リクエストが成功したかどうかを判断します。

秒単位のジョブスケジューリング

いいえ。ジョブは分単位でのみスケジュールされます。

はい。ジョブは秒単位でスケジュールされます。

プライベート URL のサポート

いいえ。サーバーレスモードでは、指定された URL にリクエストを送信するにはインターネットアクセスが必要です。HTTP インターフェースの URL が ip:port 形式の場合は、マシンでインターネットアクセスを有効にする必要があります。

はい。プライベート URL がサポートされています。

ジョブ名の解析

ジョブ名が中国語の場合、バックエンドシステムは 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 コンソール にログオンし、SchedulerX バージョンページで HTTP ジョブを作成します。

    次の図は、GET メソッドを使用する HTTP ジョブの構成を示しています。スケジューリングジョブの作成方法の詳細については、「ジョブを作成する」をご参照ください。

    HTTP Serverles 任务

次の表に、サーバーレス HTTP ジョブとエージェント HTTP ジョブのパラメーターを示します。

説明

MSE コンソールでのサーバーレスモードとエージェントモードのパラメーターは同じです。

パラメーター

説明

[タスク名]

ジョブのカスタム名。

[説明]

ジョブの説明。後続のクエリを容易にするために、簡単な言葉を使用することをお勧めします。

[アプリケーション ID]

ジョブが属するアプリケーションの ID。ドロップダウンリストから値を選択します。

[タスクタイプ]

ジョブのタイプ。この例では、Http を選択します。

[フル URL]

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

[リクエストメソッド]

リクエストメソッド。GET または POST を選択します。

[レスポンス分析モード]

レスポンスを解析するモード。有効な値:

  • HTTP レスポンスコード

    このモードを選択した場合、HTTP レスポンスコードが返されます。標準の HTTP レスポンスコードを構成する必要があります。

  • カスタム JSON

    このモードを選択した場合は、戻り値チェックキーと戻り値チェック値パラメーターを構成する必要があります。

    デフォルトでは、JSON 形式の HTTP レスポンスがサーバーから返されます。システムは、指定した戻り値チェックキーと値に基づいて、リクエストが成功したかどうかを確認します。

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

    上記のサンプルコードでは、success キーの値が true、または code キーの値が 200 の場合、システムはリクエストが成功したと判断します。

  • カスタム文字列

    このモードを選択した場合、戻り文字列が指定したカスタム文字列と一致する場合、システムはリクエストが成功したと判断します。

[戻り値チェックキー]

リクエストが成功したかどうかを判断するために使用される戻りキー。JSON 形式のレスポンスのみがサポートされています。

[戻り値チェック値]

リクエストが成功したかどうかを判断するために使用される戻り値。JSON 形式のレスポンスのみがサポートされています。

[カスタム文字列]

指定したカスタム文字列。

[実行タイムアウト]

実行タイムアウト期間。

  • 実行方法を serverless に設定した場合、最大タイムアウト期間は Basic エディションで 30 秒、Professional エディションで 120 秒です。

  • 実行方法を agent に設定した場合、タイムアウト期間に制限はありません。

[ContentType]

リクエストのデータ型。有効な値:

  • application/x-www-form-urlencoded

  • application/json

[POST パラメーター]

POST フォームパラメーター。例: key1=val1;key2=val2

[Cookie]

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

[実行方法]

  • serverless:サーバーがリクエストを開始します。インターネット経由でアクセスできる URL が必要です。

  • agent:エージェントがリクエストを開始します。リクエストを開始するには、V1.8.2 以降の SchedulerX エージェントをインストールする必要があります。内部 URL を構成できます。

詳細構成

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

ジョブの実行に失敗した後の再試行回数。デフォルト値:0。

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

失敗したジョブ間の再試行間隔。デフォルト値:30。単位:秒。

[タスクの同時実行性]

同じジョブに対して同時に実行できるインスタンスの最大数。値 1 は、一度に 1 つのジョブインスタンスのみが許可されることを示します。スケジューリングジョブに対して同時に実行されるインスタンスの数が指定された値を超えると、スケジューリングジョブはスキップされます。

[クレンジング戦略]

ジョブの実行中に生成された履歴レコードをクリアするために使用される戦略。デフォルト値:最後の N エントリを保持。N は [保持数] パラメーターの値によって指定されます。有効な値:

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

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

[保持数]

ジョブの実行後に保持される履歴レコードの数。デフォルト値:300。

ステップ 2:タイミング構成ステップでパラメーターを構成する

  1. [タイミング構成] ステップで、タイミング関連のパラメーターと詳細パラメーターを構成します。次に、[次のステップ] をクリックします。

    image

    次の表に、タイミング関連のパラメーターを示します。

    パラメーター

    説明

    [時間タイプ]

    • なし:スケジューリングメソッドは使用されません。ほとんどの場合、スケジューリングジョブはワークフローによってトリガーされます。

    • cron:ジョブは CRON 式に基づいてスケジュールされます。

    • api:スケジューリングジョブは、API 操作を呼び出すことによってトリガーされます。

    • fixed_rate:ジョブは一定の間隔でスケジュールされます。

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

    • one_time:ジョブは指定された時刻に 1 回だけスケジュールされます。

    [Cron 式]

    CRON 構文に準拠する CRON 式を入力します。[ビルドツールを使用] をクリックして CRON 式を指定し、[Cron を検証] をクリックして CRON 式を検証することもできます。このパラメーターは、時間タイプパラメーターを cron に設定した場合にのみ使用できます。

    [固定頻度]

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

    [固定遅延]

    固定遅延を入力します。有効な値:1 ~ 60。単位:秒。たとえば、値を 5 に設定すると、スケジューリングジョブは 5 秒の遅延でトリガーされます。このパラメーターは、時間タイプパラメーターを second_delay に設定した場合にのみ使用できます。

    [スケジューリング時間]

    日付と時刻を選択します。たとえば、値を 2025-4-2 12:00:00 に設定すると、ジョブは指定した日時でスケジュールされます。このパラメーターは、時間タイプパラメーターを one_time に設定した場合にのみ使用できます。

    詳細構成

    [時間オフセット]

    ジョブデータが生成される時刻とジョブがスケジュールされる時刻のオフセットを指定します。SchedulerX がジョブを実行するときに、コンテキストからオフセット値を取得できます。

    [タイムゾーン]

    ビジネス要件に基づいて、国または地域のタイムゾーンを選択するか、協定世界時 (UTC) タイムゾーンを選択します。

    [カレンダー]

    スケジューリングジョブの有効なカレンダーを指定します。有効な値:

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

    • カレンダーを指定する (このオプションを選択した場合は、ドロップダウンリストから営業日または稼働日を選択する必要があります。)

    [有効時間]

    スケジューリングジョブの有効時間を指定します。有効な値:

    • すぐに有効

    • 開始時刻 (このオプションを選択した場合は、開始日時を選択する必要があります。)

ステップ 3:通知構成ステップでパラメーターを構成する

HTTP ジョブを作成するときに、アラートルールを構成できます。アラートルールを作成した後、タイムアウトエラーが発生した場合、または戻り値が指定された値と異なる場合に通知を受信できます。

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

    创建任务-报警配置

  2. ジョブを作成した後、[タスク] ページでジョブを見つけ、ジョブの [操作] 列の [1 回実行] をクリックします。

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);
          vo.setName(userName);
          RestResult result = new RestResult();
          result.setCode(200);
          result.setData(vo);
          return result;
      }
  2. MSE コンソール にログオンし、SchedulerX バージョンページで HTTP ジョブを作成します。

    次の図は、POST メソッドを使用する HTTP ジョブの構成を示しています。スケジューリングジョブの作成方法の詳細については、「ジョブを作成する」をご参照ください。Serverless HTTP POST

    次の表に、サーバーレス HTTP ジョブとエージェント HTTP ジョブのパラメーターを示します。

    説明

    MSE コンソールでのサーバーレスモードとエージェントモードのパラメーターは同じです。

    パラメーター

    説明

    [タスク名]

    ジョブのカスタム名。

    [説明]

    ジョブの説明。後続のクエリを容易にするために、簡単な言葉を使用することをお勧めします。

    [アプリケーション ID]

    ジョブが属するアプリケーションの ID。ドロップダウンリストから値を選択します。

    [タスクタイプ]

    ジョブのタイプ。この例では、Http を選択します。

    [フル URL]

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

    [リクエストメソッド]

    リクエストメソッド。GET または POST を選択します。

    [レスポンス分析モード]

    レスポンスを解析するモード。有効な値:

    • HTTP レスポンスコード

      このモードを選択した場合、HTTP レスポンスコードが返されます。標準の HTTP レスポンスコードを構成する必要があります。

    • カスタム JSON

      このモードを選択した場合は、戻り値チェックキーと戻り値チェック値パラメーターを構成する必要があります。

      デフォルトでは、JSON 形式の HTTP レスポンスがサーバーから返されます。システムは、指定した戻り値チェックキーと値に基づいて、リクエストが成功したかどうかを確認します。

      {
        "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 に設定した場合、タイムアウト期間に制限はありません。

    [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 バイトです。

    [実行方法]

    • serverless:サーバーがリクエストを開始します。インターネット経由でアクセスできる URL が必要です。

    • agent:エージェントがリクエストを開始します。リクエストを開始するには、V1.8.2 以降の SchedulerX エージェントをインストールする必要があります。内部 URL を構成できます。

    詳細構成

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

    ジョブの実行に失敗した後の再試行回数。デフォルト値:0。

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

    失敗したジョブ間の再試行間隔。デフォルト値:30。単位:秒。

    [タスクの同時実行性]

    同じジョブに対して同時に実行できるインスタンスの最大数。値 1 は、一度に 1 つのジョブインスタンスのみが許可されることを示します。スケジューリングジョブに対して同時に実行されるインスタンスの数が指定された値を超えると、スケジューリングジョブはスキップされます。

    [クレンジング戦略]

    ジョブの実行中に生成された履歴レコードをクリアするために使用される戦略。デフォルト値:最後の N エントリを保持。N は [保持数] パラメーターの値によって指定されます。有効な値:

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

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

    [保持数]

    ジョブの実行後に保持される履歴レコードの数。デフォルト値:300。

ステップ 2:タイミング構成ステップでパラメーターを構成する

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

创建任务-定时配置

次の表に、タイミング関連のパラメーターを示します。

パラメーター

説明

[時間タイプ]

  • なし:スケジューリングメソッドは使用されません。ほとんどの場合、スケジューリングジョブはワークフローによってトリガーされます。

  • cron:ジョブは CRON 式に基づいてスケジュールされます。

  • api:スケジューリングジョブは、API 操作を呼び出すことによってトリガーされます。

  • fixed_rate:ジョブは一定の間隔でスケジュールされます。

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

  • one_time:ジョブは指定された時刻に 1 回だけスケジュールされます。

[Cron 式]

CRON 構文に準拠する CRON 式を入力します。[ビルドツールを使用] をクリックして CRON 式を指定し、[Cron を検証] をクリックして CRON 式を検証することもできます。このパラメーターは、時間タイプパラメーターを cron に設定した場合にのみ使用できます。

[固定頻度]

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

[固定遅延]

固定遅延を入力します。有効な値:1 ~ 60。単位:秒。たとえば、値を 5 に設定すると、スケジューリングジョブは 5 秒の遅延でトリガーされます。このパラメーターは、時間タイプパラメーターを second_delay に設定した場合にのみ使用できます。

[スケジューリング時間]

日付と時刻を選択します。たとえば、値を 2025-4-2 12:00:00 に設定すると、ジョブは指定した日時でスケジュールされます。このパラメーターは、時間タイプパラメーターを one_time に設定した場合にのみ使用できます。

詳細構成

[時間オフセット]

ジョブデータが生成される時刻とジョブがスケジュールされる時刻のオフセットを指定します。SchedulerX がジョブを実行するときに、コンテキストからオフセット値を取得できます。

[タイムゾーン]

ビジネス要件に基づいて、国または地域のタイムゾーンを選択するか、協定世界時 (UTC) タイムゾーンを選択します。

[カレンダー]

スケジューリングジョブの有効なカレンダーを指定します。有効な値:

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

  • カレンダーを指定する (このオプションを選択した場合は、ドロップダウンリストから営業日または稼働日を選択する必要があります。)

[有効時間]

スケジューリングジョブの有効時間を指定します。有効な値:

  • すぐに有効

  • 開始時刻 (このオプションを選択した場合は、開始日時を選択する必要があります。)

ステップ 3:通知構成ステップでパラメーターを構成する

HTTP ジョブを作成するときに、アラートルールを構成できます。アラートルールを作成した後、タイムアウトエラーが発生した場合、または戻り値が指定された値と異なる場合に通知を受信できます。

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

    创建任务-报警配置

  2. ジョブを作成した後、[タスク] ページでジョブを見つけ、ジョブの [操作] 列の [1 回実行] をクリックします。

HTTP ジョブの基本情報を照会する

HTTP ジョブの基本情報はヘッダーに含まれています。基本情報を取得するには、クライアントの pom.xml ファイルに次の依存関係を追加する必要があります。

<dependency>
    <groupId>com.aliyun.schedulerx</groupId>
    <artifactId>schedulerx2-common</artifactId>
    <version>1.6.0</version>
</dependency>

次のサンプルコードは、GET メソッドを使用して HTTP ジョブの基本情報を照会する方法の例を示しています。

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");
    // ジョブ名が中国語の場合は、URLDecode を使用して名前をデコードします。
    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 操作の呼び出しによってジョブがトリガーされたときに挿入されます。

結果の検証

SchedulerX の [インスタンス] ページで、HTTP ジョブの実行結果を表示します。

ジョブの実行に失敗した場合は、ジョブの [操作] 列の [詳細] をクリックして、失敗の原因を表示します。

  • 戻り値が予期された値と異なります。返回值和期望不相同

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