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 wait criteri 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 dei criteri. Altre informazioni su come impostare o modificare i criteri di Gestione API.

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
for 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 - attendere il completamento di tutti i 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

Nell'esempio seguente sono presenti due choose criteri come criteri figlio immediati dei wait criteri. 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.

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

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: