Wait

PLATÍ PRO: Všechny úrovně služby API Management

Zásada wait provádí své okamžité podřízené zásady paralelně a čeká na dokončení všech nebo jedné z jejích okamžitých podřízených zásad. Zásada wait může mít jednu nebo více z následujících zásad bezprostředního podřízeného: send-request, cache-lookup-valuea choose zásady.

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Prohlášení o zásadách

<wait for="all | any">
  <!--Wait policy can contain send-request, cache-lookup-value,
        and choose policies as child elements -->
</wait>

Atributy

Atribut Popis Požaduje se Výchozí
pro Určuje, jestli wait zásada čeká na dokončení všech okamžitých podřízených zásad, nebo jenom na jednu. Povolené hodnoty jsou následující:

- all - počkejte na dokončení všech zásad okamžitého podřízeného
- any – počkejte na dokončení jakékoli okamžité podřízené zásady. Jakmile se dokončí první okamžitá podřízená zásada, wait zásada se dokončí a ukončí všechny ostatní okamžité podřízené zásady.

Výrazy zásad jsou povolené.
No all

Elementy

Může obsahovat pouze send-requestpodřízené prvky , cache-lookup-valuea choose zásady.

Využití

Příklad

V následujícím příkladu existují dvě choose zásady jako okamžité podřízené zásady wait zásady. Každá z těchto choose zásad se provádí paralelně. Každá choose zásada se pokusí načíst hodnotu uloženou v mezipaměti. Pokud dojde k chybě mezipaměti, zavolá se back-endová služba, která tuto hodnotu poskytne. V tomto příkladu wait se zásada nedokončí, dokud se nedokončí všechny jeho okamžité podřízené zásady, protože for atribut je nastaven na all. V tomto příkladu jsou kontextové proměnné (execute-branch-one, value-one, execute-branch-twoa value-two) deklarovány mimo rozsah této ukázkové zásady.

<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>

Další informace o práci se zásadami najdete v tématech: