Wait

GÄLLER FÖR: Alla API Management-nivåer

Principen wait kör sina omedelbara underordnade principer parallellt och väntar på att alla eller en av dess omedelbara underordnade principer ska slutföras innan den slutförs. Principen wait kan ha en eller flera av följande principer som omedelbara underordnade principer: send-request, cache-lookup-valueoch .choose

Kommentar

Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.

Principuttryck

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

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
för Avgör om wait principen väntar på att alla omedelbara underordnade principer ska slutföras eller bara en. Tillåtna värden är:

- all - vänta tills alla omedelbara underordnade principer har slutförts
- any - vänta tills någon omedelbar barnpolicy har slutförts. När den första omedelbara underordnade principen har slutförts slutförs principen och körningen wait av andra omedelbara underordnade principer avslutas.

Principuttryck tillåts.
Nej all

Element

Kan endast send-requestinnehålla som underordnade element , cache-lookup-valueoch choose principer.

Användning

Exempel

I följande exempel finns det två choose principer som omedelbara underordnade principer för wait principen. Var och en av dessa choose principer körs parallellt. Varje choose princip försöker hämta ett cachelagrat värde. Om det finns en cachemiss anropas en serverdelstjänst för att ange värdet. I det här exemplet wait slutförs inte principen förrän alla dess omedelbara underordnade principer har slutförts, eftersom for attributet är inställt på all. I det här exemplet deklareras kontextvariablerna (execute-branch-one, value-one, execute-branch-twooch value-two) utanför omfånget för den här exempelprincipen.

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

Mer information om hur du arbetar med principer finns i: