HTTP タスクは、HTTP または HTTPS プロトコルを使用してタスクをスケジュールおよび実行し、SDK なしで言語やプラットフォームをまたいだタスクスケジューリングを可能にします。Kubernetes 環境での接続と Kubernetes 以外の環境での接続の 2 つの接続タイプがサポートされています。
前提条件
現在のエンジンバージョンが 2.3.0 より前の場合は、2.3.0 以降にアップグレードしてください。
アップグレード中にインスタンスが再起動します。
利点
コードを一切変更せずにレガシーサービスを統合できます。
複数の言語に対して統一されたソリューションを使用できます。
AI エージェントとワークフローのシナリオをサポートします。
HTTP タスクの接続タイプ
Kubernetes 環境での接続
Kubernetes 環境で接続するには、Kubernetes クラスター内のサービスをアプリケーションにバインドして、HTTP タスクのスケジューling を有効にします。サービスがバインドされると、アプリケーション内のすべてのタスクは、サービスに関連付けられた Pod リソースを共有できます。
アプリケーションで Kubernetes サービスを構成すると、スケジューリングセンターは関連する Pod インスタンスに関する情報を自動的に取得します。タスクを構成するときは、HTTP リクエストパスを指定するだけでよく、Pod アドレスを指定する必要はありません。タスクがトリガーされると、スケジューリングセンターは事前に設定されたルーティングポリシーに基づいて宛先 Pod に HTTP リクエストを送信します。タスクの実行結果は記録され、将来の表示と分析のために Simple Log Service (SLS) にプッシュされます。
スケジューリングセンターは、サービスディスカバリースレッドを使用して Pod のスケーリングイベントと異常なステータスを定期的に検出し、最新の Pod インスタンス情報を Pod マネージャーと自動的に同期します。このプロセスにより、Pod クラスターの動的な監視とステータスのメンテナンスが可能になります。
Pod マネージャーは、Pod のネットワークアドレスとヘルスステータスを維持します。また、複数のタスクルーティングポリシーもサポートしています。単一インスタンスのルーティングに加えて、ブロードキャストシャーディングルーティングパターンを提供します。タスクがトリガーされると、リクエストは宛先サービスのすべての Pod インスタンスにブロードキャストできます。スケジューリングセンターは、シャードインデックスやシャードの総数などのシャーディングコンテキスト情報を HTTP リクエストヘッダーに挿入します。これにより、タスク実行中に詳細な論理制御とデータパーティションを実行できます。
Kubernetes 以外の環境での接続
Kubernetes 以外の環境では、アプリケーションレベルで HTTP 宛先ドメイン名を設定できます。これにより、アプリケーションの統一されたドメイン名管理とルーティングポリシー制御が可能になります。アプリケーションが複数のドメイン名にバインドされると、そのアプリケーション内のすべてのタスクがこれらのドメイン名構成を共有します。
ドメイン名はアプリケーションレベルでバインドされます。スケジューリングセンターは、ドメイン名マネージャーを使用してドメイン名情報を維持します。タスクを作成するときは、リクエストパスを構成するだけでよく、ドメイン名を指定する必要はありません。タスクがトリガーされると、スケジューリングセンターは事前に設定されたルーティングポリシーに基づいて適切なドメイン名を自動的に選択し、リクエストをゲートウェイに送信します。ゲートウェイは、認証、トラフィックシェーピング、および負荷分散を実行します。その後、リクエストを宛先サービスに転送します。実行結果は SLS と同期されます。
ドメイン名マネージャーは、ドメイン名情報の維持を担当します。ドメイン名の追加、削除、変更、およびタグベースルーティングの構成をサポートします。ビジネスタグに基づいてトラフィックを分散し、さまざまなスケジューリングおよび負荷分散のニーズを満たすために複数のルーティングポリシーをサポートします。
接続タイプの比較
比較ディメンション | Kubernetes 環境: サービス経由で接続 | Kubernetes 以外の環境: ゲートウェイ経由で接続 |
接続パターン | Kubernetes サービスに基づいてバックエンド Pod インスタンスに直接アクセスします。 | 統一されたゲートウェイを介してリクエストをプロキシし、宛先ドメイン名サービスに転送します。 |
サービスディスカバリーメカニズム | Endpoint の変更を積極的にリッスンし、Pod リストを動的に維持します。 | サービスディスカバリーをサポートせず、バックエンドノードのステータスを認識しません。 |
実行ターゲットの粒度 | 特定の Pod の IP アドレスとポートにタスクをスケジュールでき、ポイントツーポイントの直接呼び出しが可能です。 | リクエストはゲートウェイに送信され、ゲートウェイが内部の負荷分散とインスタンスルーティングを処理します。スケジューリングセンターは実際のバックエンドノードを認識できません。 |
ルーティングポリシー | 単一インスタンスのルーティングポリシーと ブロードキャストシャーディング をサポートします。 | ルーティングポリシーをサポートしません。ゲートウェイのルーティングポリシーを使用します。 |
ブロードキャストシャーディング | ブロードキャストシャーディングをネイティブにサポートし、大規模な並列バッチ処理シナリオに適しています。 | ブロードキャストシャーディングをサポートしていません。すべてのタスクは単一点で実行され、ノード間の協調処理はできません。 |
ヘルスステータス管理 | Endpoint ステータスをリアルタイムで同期し、準備ができていないか終了した Pod を自動的に削除します。 | ドメイン名の可用性の手動メンテナンスに依存します。 |
拡張性と柔軟性 | クラウドネイティブ環境に適応し、自動スケーリングやローリングデプロイなどのシナリオをサポートします。 | 従来のアーキテクチャや異種システム統合により適しています。互換性が高く、既存のゲートウェイシステムとの接続が容易です。 |
シナリオ | コンテナー化されたマイクロサービス、バッチ処理ジョブのシャーディング実行、および高同時実行のスケジュールされたタスク。 | 非コンテナー環境、ハイブリッドデプロイメントアーキテクチャ、レガシーシステム統合、および統一されたゲートウェイ管理を必要とするエンタープライズレベルの API スケジューリング。 |
接続ステップ
MSE XXL-JOB コンソールにログインし、トップメニューバーからリージョンを選択します。
左側のナビゲーションウィンドウで、[タスクスケジューリング] > [XXL-JOB] を選択します。
ターゲットインスタンスをクリックします。左側のナビゲーションウィンドウで、[アプリケーション管理] を選択し、[アプリケーションの作成] をクリックします。[アプリケーションタイプ] パラメーターを [Http アプリケーション] に設定し、[OK] をクリックします。
HTTP エグゼキュータに接続します。詳細については、「HTTP アプリケーションをエグゼキュータに接続する」をご参照ください。
左側のナビゲーションウィンドウで、[タスク管理] を選択し、[タスクの作成] をクリックします。[関連アプリケーション] パラメーターで、ステップ 3 で作成したアプリケーションを選択します。[タスクタイプ] パラメーターを [HTTP] に設定します。
HTTP タスクのリクエストドメイン名、パス、リクエストメソッド、およびタイムアウトを構成します。
HTTP タスクのリクエストパラメーターを構成します。必要に応じて、Header、Query、および Body パラメーターを入力します。
HTTP タスクの応答定義を構成します。これには、成功した応答とその結果を解析するためのパターンが含まれます。応答コード、応答本文、応答 Body の 3 つの解析タイプが利用可能です。
HTTP タスクの再試行ポリシーを構成します。これには、再試行回数と再試行間隔が含まれます。再試行回数が 0 より大きい場合、つまりタスクが失敗後に再試行される場合、再試行ドメイン名とインターフェイスパスも構成できます。タスクが失敗した場合、リクエストはこのドメイン名とパスに送信されます。
HTTP タスクのリクエストヘッダー
MSE-XXLJOB が HTTP タスクを実行すると、次のシステムパラメーターがリクエストヘッダーに追加されます。
名前 | 説明 | 値の例 |
schedulerx-appId | アプリケーション ID | 12 |
schedulerx-jobId | タスク ID | 35 |
schedulerx-jobName | タスク名 | http-test-job |
schedulerx-scheduleTimestamp | スケジューリングタイムスタンプ (ミリ秒) | 1760164985000 |
schedulerx-dataTimestamp | データタイムスタンプ (ミリ秒) | 1760164980000 |
schedulerx-user | ユーザー情報 | 1344371792 |
schedulerx-maxAttempt | 最大再試行回数 | 3 |
schedulerx-attempt | 現在の再試行回数 | 1 |
schedulerx-jobExecutionId | タスク実行 ID | 1417474640397221891 |
schedulerx-logId | シャード ID (ブロードキャストシャーディング用) | 1417474640531439619 |
schedulerx-shardingIndex | シャードインデックス (ブロードキャストシャーディング用) | 0 |
schedulerx-shardingTotal | シャードの総数 (ブロードキャストシャーディング用) | 3 |