Skip to content
Last updated

プールのユースケース

ここでは、よくある 2 つの課題に対してプールとプールルールを組み合わせる方法を示します。

ユースケース 1: 重要なワークフロー向けにスロットを確保する

Audience ワークフローと Journey ワークフローは通常、アクティベーションの前に実行する必要があり、アドホックなワークフローによって妨げられてはなりません。これらの重要なワークフロータイプ専用のプールを作成して、常にスロットが利用可能な状態にしておきます。

プール:

{
  "name": "critical_workflows",
  "concurrencyLimit": 100
}

API がこのプールに対して id: "1" を返すとします。

ルール:

{
  "priority": 10,
  "poolId": "1",
  "conditions": [
    {"type": "workflow_type", "values": ["audience", "customer_journey"]}
  ]
}

この設定により、起動タイプにかかわらず、すべての Audience ワークフローと Journey ワークフローが critical_workflows プールに割り当てられます。このプールの 100 スロットが他のワークフローに使われることはありません。

ユースケース 2: 問題のあるワークフローを隔離する

ある特定のワークフローが外部のエラーにより想定よりもはるかに長く実行され続け、デフォルトプールを埋め尽くしているとします。上流のエラーが解消されれば正常に終了するため、強制的に停止させたくはありません。他の作業を妨げないように、小さな隔離用プールに移しましょう。

プール:

{
  "name": "penalty_box",
  "concurrencyLimit": 10
}

API がこのプールに対して id: "2" を返すとします。

ルール:

{
  "priority": 10,
  "poolId": "2",
  "conditions": [
    {"type": "workflow_name", "operator": "starts_with", "values": ["external_"]}
  ]
}

このルールが設定された後、ワークフロー名が external_ で始まる、新規に作成されるすべてのアテンプトは penalty_box プールに割り当てられ、並行実行は最大 10 件に制限されます。他のワークフローには影響しません。

実行中のアテンプトには影響しません

プールの割り当ては、アテンプトが作成された時点で確定します。すでに実行中のアテンプトは、ルールを追加してもそのまま元のプールに留まります。

penalty_box プールは事前に作成しておく

プールを作成するには、デフォルトプールに新しいプールの並行実行数の上限以上の空きスロットが必要です。デフォルトプールに余裕があるうちに penalty_box のような隔離用プールを事前に作成しておけば、必要なときにすぐ問題のあるワークフローを移動できます。

関連トピック