Wachten

VAN TOEPASSING OP: Alle API Management-lagen

Het wait beleid voert de onmiddellijke onderliggende beleidsregels parallel uit en wacht tot alle of een van de directe onderliggende beleidsregels is voltooid voordat het is voltooid. Het wait beleid kan een of meer van de volgende onderliggende beleidsregels hebben: send-request, cache-lookup-valueen choose beleidsregels.

Notitie

Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.

Beleidsinstructie

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

Kenmerken

Kenmerk Beschrijving Vereist Standaardinstelling
voor Bepaalt of het wait beleid wacht totdat alle onmiddellijke onderliggende beleidsregels zijn voltooid of slechts één. Toegestane waarden zijn:

- all - wacht totdat alle onmiddellijke onderliggende beleidsregels zijn voltooid
- any - wacht tot het onmiddellijke onderliggende beleid is voltooid. Zodra het eerste onderliggende beleid is voltooid, wordt het beleid voltooid en wordt het wait uitvoeren van andere directe onderliggende beleidsregels beëindigd.

Beleidsexpressies zijn toegestaan.
Nee all

Elementen

Mag alleen send-requestonderliggende elementen bevatten, cache-lookup-valueen choose beleidsregels.

Gebruik

Opmerking

In het volgende voorbeeld zijn er twee choose beleidsregels als direct onderliggend beleid van het wait beleid. Elk van deze choose beleidsregels wordt parallel uitgevoerd. Elk choose beleid probeert een waarde in de cache op te halen. Als er een cache ontbreekt, wordt een back-endservice aangeroepen om de waarde op te geven. In dit voorbeeld wordt het wait beleid pas voltooid als alle onderliggende beleidsregels zijn voltooid, omdat het for kenmerk is ingesteld op all. In dit voorbeeld worden de contextvariabelen (execute-branch-one, value-one, execute-branch-twoen value-two) buiten het bereik van dit voorbeeldbeleid gedeclareerd.

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

Zie voor meer informatie over het werken met beleid: