Udostępnij za pośrednictwem


Wait

DOTYCZY: Wszystkie warstwy usługi API Management

Zasady wait wykonują swoje natychmiastowe zasady podrzędne równolegle i czekają na ukończenie wszystkich lub jednego z natychmiastowych zasad podrzędnych. Zasady wait mogą mieć jako natychmiastowe zasady podrzędne co najmniej jedną z następujących zasad: send-request, cache-lookup-valuei choose .

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Instrukcja zasad

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

Atrybuty

Atrybut opis Wymagani Wartość domyślna
dla Określa, czy wait zasady oczekują na ukończenie wszystkich natychmiastowych zasad podrzędnych, czy tylko jednej. Dozwolone wartości to:

- all - poczekaj na ukończenie wszystkich natychmiastowych zasad podrzędnych
- any - poczekaj na zakończenie wszelkich natychmiastowych zasad podrzędnych. Po zakończeniu wait pierwszych natychmiastowych zasad podrzędnych zasady zostaną zakończone i wykonanie innych natychmiastowych zasad podrzędnych zostanie zakończone.

Wyrażenia zasad są dozwolone.
Nie. all

Elementy

Może zawierać jako elementy podrzędne tylko send-request, cache-lookup-valuei choose zasady.

Użycie

  • Sekcje zasad: ruch przychodzący, wychodzący, zaplecze
  • Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
  • Bramy: klasyczne, v2, zużycie, self-hosted, obszar roboczy

Przykład

W poniższym przykładzie istnieją dwie choose zasady jako natychmiastowe zasady podrzędne wait zasad. Każda z tych choose zasad jest wykonywana równolegle. Każda choose zasada próbuje pobrać wartość z pamięci podręcznej. Jeśli brakuje pamięci podręcznej, usługa zaplecza jest wywoływana w celu podania wartości. W tym przykładzie wait zasady nie są wykonywane do momentu ukończenia wszystkich jego natychmiastowych zasad podrzędnych, ponieważ for atrybut jest ustawiony na allwartość . W tym przykładzie zmienne kontekstowe (execute-branch-one, value-one, execute-branch-twoi value-two) są deklarowane poza zakresem tych przykładowych zasad.

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

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: