Condividi tramite


Wait.

SI APPLICA A: Tutti i livelli di Gestione API

Il criterio wait esegue i criteri figlio immediati in parallelo e attende che tutti o uno dei relativi criteri figlio immediati vengano completati prima di terminare la sua attività. I criteri wait possono avere come criteri figlio immediati uno o più dei criteri seguenti: send-request, cache-lookup-valuee choose.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Attributo Descrizione Richiesto Valore predefinito
per Determina se il criterio wait attende il completamento di tutti o solo uno dei criteri figlio immediati. I valori consentiti sono i seguenti:

- all: consente di attendere il completamento di tutti i criteri figlio immediati
- any: consente di attendere il completamento di uno dei criteri figlio immediati. Dopo il completamento del primo criterio figlio immediato, il criterio wait si completa e l'esecuzione di qualsiasi altro criterio figlio immediato viene arrestata.

Le espressioni di criteri sono consentite.
NO all

Elementi

Può contenere come elementi figlio solo i criteri send-request, cache-lookup-value e choose.

Utilizzo

Esempio

L'esempio seguente contiene due criteri choose come criteri figlio immediato dei criteri wait. Ognuno di questi criteri choose viene eseguito in parallelo. Ogni criterio choose tenta di recuperare un valore memorizzato nella cache. Se si verifica un mancato riscontro nella cache, viene chiamato un servizio di back-end per fornire il valore. In questo esempio il criterio wait non si completa fino al completamento di tutti i relativi criteri figlio immediati, poiché l'attributo for è impostato su all. In questo esempio le variabili di contesto (execute-branch-one, value-one, execute-branch-two e value-two) vengono dichiarate all'esterno dell'ambito di questo criterio di esempio.

Nota

Aggiungi una policy di limite di velocità (o politica limite di velocità per chiave ) dopo la ricerca della cache per aiutare a limitare il numero di chiamate e prevenire sovraccarichi sul servizio backend nel caso in cui la cache non sia disponibile.

<wait for="all">
  <choose>
    <when condition="@((bool)context.Variables["execute-branch-one="])">
      <cache-lookup-value key="key-one" variable-name="value-one" />
      <rate-limit calls="10" renewal-period="60" />
      <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" />
      <rate-limit calls="10" renewal-period="60" />
      <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>

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: