お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

主要な概念

このヘルプセクションでは、Job Poolを最適に活用するためのいくつかの重要な概念を確認します。

Job Pool ID

Job Pool IDは、Job Poolが作成される際にCatalystによって生成される一意のIDです。このIDはJob Poolの識別に使用されます。APIやSDKを使用してアクションを実行する際に、このIDを使用してJob Poolを参照できます。 catalyst_job_scheduling_showcase_id_jobpool

ジョブ実行の各種ステート

Job Poolからジョブが実行される際、実行が結果として取り得る4つのステートがあります:

  • Success:ジョブが設定されたターゲットタイプを正常にトリガーした場合。
  • Pending:ディスパッチ遅延がある場合。
  • Running:ジョブが現在実行中の場合。
  • Failure:以下のいずれかの理由でジョブの実行が失敗した場合:
    • Failure:通常、コードファイルを不適切に閉じた場合に発生します。
    • Timeout:通常、関数が15分を超えた場合に発生します。
    • Code_Exception:通常、コードに問題がある場合に発生します。
    • Not_Found:通常、ターゲット関数を削除した場合に発生します。
    • Unintentional_Termination:通常、Nodeランタイムでexit()メソッドを呼び出した場合や、関数のコンテキストを閉じなかった場合に発生します。

これらのステートはDashboardにも表示され、ジョブのステータスを追跡するために使用できます。

注意: Application Alertsコンポーネントを使用して、ジョブが上記のいずれかのステートに入った際にメールで通知するアラートを設定することもできます。

ディスパッチ遅延を回避するための理想的なメモリ割り当て

これは、Job Poolを作成する際に設定する必要があるJob Schedulingの機能です。memory allocationにより、ジョブがJob Poolによってディスパッチ遅延なく迅速に実行されるよう、Job Poolに十分なメモリを割り当てることができます。

catalyst_job_scheduling_job_pool_memeory_allocation

memory allocationはFunctions Job Poolにのみ必要です。Functions Job Poolでは、ジョブはJob Functionをトリガーするために実行されます。Job Pool内のジョブとそれらがトリガーするJob Functionはすべて、Job Poolと同じインスタンスで発生します。メモリが適切に割り当てられていない場合、ディスパッチ遅延が発生する可能性があります。そのため、memory allocationは慎重に設定してください。

トリガーされる関数の実行に必要なメモリを考慮して、Job Poolにメモリを割り当てる必要があります。Job Poolがジョブを正常に実行し関数をトリガーするには、Job Poolに割り当てられたメモリが、その特定のJob Poolに関連付けられたジョブによってトリガーされるすべての関数に割り当てられたメモリよりも高くなければなりません。割り当て可能な最大メモリは10GBです。

Functions Job Poolでは、要件に基づいてメモリを柔軟に割り当てることができます。たとえば、それぞれ1GBの10個のJob Poolを持つことも、10GBのメモリを持つ1つのJob Poolを持つこともできます。

次の仮定の状況を想像してください。サブスクリプション料金モデルに基づいてサービスを提供するeコマースプラットフォームがあります。Job Schedulingで満たせる2つの最低要件があります。1つは、サブスクリプション更新の迅速なリマインダーを配信するために3GBのメモリを必要とする関数をトリガーすること、もう1つは、オファーや最新の製品詳細を含むメールをエンドユーザーに配信するために2GBを必要とする関数をトリガーするジョブです。これらの関数は両方とも、10GBの単一のFunctions Job Poolを使用してトリガーできます。

しかし、関数をトリガーするために複数のジョブを作成して実行する需要が増加した場合にディスパッチ遅延が発生する可能性があるため、これはJob Poolを使用する効率的な方法ではありません。このタイプのワークフローの図を以下に示します:

catalyst_job_scheduling_jobpool_dispatch_dig

このような状況に陥らないための効率的な方法は、2つの異なるFunctions Job Poolを使用することです。1つは、支払いリマインダーの送信などの優先ジョブを実行するためのmemory allocationを常に確保している優先Job Poolです。もう1つのJob Poolは、ディスパッチ遅延が発生しても、ワークフローの残りの部分に大きな影響を与えない柔軟な優先度のジョブを実行できます。すべてのジョブがディスパッチ遅延を回避して迅速に実行されることを保証する理想的なワークフローの図を以下に示します。

catalyst_job_scheduling_jobpool_success_exec_dig

理解すべき重要なポイントは、Job Poolを使用する理想的な方法は、Job Poolが常にジョブがトリガーするJob Functionsよりも高いmemory allocationを持っている状態にすることです。

注意:
  • 単一のCatalystプロジェクトにおけるJob Poolのデフォルトの最大memory allocationは10GBです。急激な需要の増加に対応するために、いつでもJob Poolのmemory allocationを編集できます。しかし、理想的な方法は常に、適切なmemory allocationを持つ十分な数のJob Poolを使用することです。

  • 他のタイプのJob PoolにはMemory allocationは必要ありませんが、Job Pool内のジョブによってトリガーされるサービスの最大数を設定する必要があります。単一のJob Poolで並列でトリガーできるAppSailサービス、Circuits、またはサードパーティURLの最大数は10です。

最終更新日 2026-02-23 18:09:41 +0530 IST