Freigeben über


Warten

GILT FÜR: Alle API Management-Ebenen

Bei der wait-Richtlinie werden die unmittelbar untergeordneten Richtlinien parallel ausgeführt, und es wird gewartet, bis entweder alle oder keine unmittelbar untergeordneten Richtlinien abgeschlossen sind, bevor sie selbst abgeschlossen wird. Die wait-Richtlinie kann eine oder mehrere der folgenden Richtlinien als unmittelbar untergeordnete Richtlinie enthalten: send-request, cache-lookup-value und choose.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

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

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
für Bestimmt, ob die wait-Richtlinie wartet, bis alle unmittelbar untergeordneten Richtlinien abgeschlossen sind, oder nur eine. Zulässige Werte sind:

- all: Es wird gewartet, bis alle unmittelbar untergeordneten Richtlinien abgeschlossen sind.
- any: Es wird gewartet, bis eine beliebige unmittelbar untergeordnete Richtlinie abgeschlossen ist. Nachdem die erste unmittelbar untergeordnete Richtlinie abgeschlossen wurde, wird die wait-Richtlinie abgeschlossen, und die Ausführung aller anderen unmittelbar untergeordneten Richtlinien wird beendet.

Richtlinienausdrücke sind zulässig.
Nein all

Elemente

Darf nur die Richtlinien send-request, cache-lookup-value und choose als untergeordnete Elemente enthalten.

Verwendung

Beispiel

Im folgenden Beispiel sind zwei choose-Richtlinien als unmittelbar untergeordnete Richtlinien der wait-Richtlinie vorhanden. Jede dieser choose-Richtlinien wird parallel ausgeführt. Jede choose-Richtlinie versucht, einen zwischengespeicherten Wert abzurufen. Bei Auftreten eines Cachefehlers wird ein Back-End-Dienst aufgerufen, um den Wert bereitzustellen. In diesem Beispiel wird die wait-Richtlinie nicht abgeschlossen, bis alle unmittelbar untergeordneten Richtlinien abgeschlossen sind, da das for-Attribut auf all festgelegt ist. In diesem Beispiel werden die Kontextvariablen (execute-branch-one, value-one, execute-branch-two und value-two) außerhalb des Bereichs dieser Beispielrichtlinie deklariert.

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

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: