Wait
適用対象: すべての API Management レベル
wait
ポリシーは、直接の子ポリシーを並列で実行し、その直接の子ポリシーのすべてまたはいずれかが完了するまで完了を待機します。 wait
ポリシーは、直接の子ポリシーとして、send-request
、cache-lookup-value
、choose
ポリシーの 1 つ以上を持つことができます。
Note
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<wait for="all | any">
<!--Wait policy can contain send-request, cache-lookup-value,
and choose policies as child elements -->
</wait>
属性
属性 | 説明 | 必要 | Default |
---|---|---|---|
対象 | wait ポリシーがすべての直接の子ポリシーが完了するまで待機するか、1 つが完了するまで待機するかを決定します。 使用できる値は、以下のとおりです。- all - すべての直接の子ポリシーが完了するまで待機します。- any - いずれかの直接の子ポリシーが完了するまで待機します。 最初の直接の子ポリシーが完了すると、wait ポリシーが完了し、他の直接の子ポリシーの実行が終了します。ポリシー式を使用できます。 |
No | all |
要素
send-request
ポリシー、cache-lookup-value
ポリシー、および choose
ポリシーのみを子要素として含めることができます。
使用
- ポリシー セクション: inbound、outbound、backend
- ポリシー スコープ: グローバル、ワークスペース、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
例
次の例では、wait
ポリシーの直接の子ポリシーとして 2 つの choose
ポリシーがあります。 これらの choose
ポリシーはそれぞれ並列に実行されます。 各 choose
ポリシーは、キャッシュされた値を取得しようとします。 キャッシュ ミスがある場合は、バックエンド サービスが呼び出されて値を提供します。 この例では、for
属性が all
に設定されているため、すべての直接の子ポリシーが完了するまで、wait
ポリシーは完了しません。 この例のコンテキスト変数 (execute-branch-one
、value-one
、execute-branch-two
、および value-two
) は、このサンプル ポリシーのスコープ外で宣言されています。
<wait for="all">
<choose>
<when condition="@((bool)context.Variables["execute-branch-one="])">
<cache-lookup-value key="key-one" variable-name="value-one" />
<choose>
<when condition="@(!context.Variables.ContainsKey("value-one="))">
<send-request mode="new" response-variable-name="value-one">
<set-url>https://backend-one</set-url>
<set-method>GET</set-method>
</send-request>
</when>
</choose>
</when>
</choose>
<choose>
<when condition="@((bool)context.Variables["execute-branch-two="])">
<cache-lookup-value key="key-two" variable-name="value-two" />
<choose>
<when condition="@(!context.Variables.ContainsKey("value-two="))">
<send-request mode="new" response-variable-name="value-two">
<set-url>https://backend-two</set-url>
<set-method>GET</set-method>
</send-request>
</when>
</choose>
</when>
</choose>
</wait>
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。