Aguarde

APLICA-SE A: todas as camadas do Gerenciamento de API

A política wait executa suas políticas filho imediatas em paralelo e aguarda que todas ou uma das políticas filho imediatas sejam concluídas antes de ser concluída. A política wait pode ter como políticas filhas imediatas uma ou mais das seguintes políticas: send-request, cache-lookup-value e choose.

Observação

Defina os elementos da política e os elementos filho na ordem fornecida na declaração da política. Saiba mais sobre como definir e editar as políticas de Gerenciamento de API.

Declaração de política

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

Atributos

Atributo Descrição Obrigatório Padrão
para Determina se a política wait aguarda todas as políticas filho imediatas a serem concluídas ou apenas uma. Valores permitidos são:

- all – aguarda todas as políticas filho imediatas serem concluídas
- any – aguarda todas as políticas filhas imediatas serem concluídas. Concluída a primeira política filho imediata, a política wait é concluída e a execução de qualquer outra política filho imediata é encerrada.

Expressões de política são permitidas.
Não all

Elementos

Pode conter como elementos filho somente as políticas send-request, cache-lookup-value e choose.

Uso

Exemplo

No exemplo a seguir há duas políticas choose como políticas filho imediatas da política wait. Cada uma dessas políticas choose executadas em paralelo. Cada política choose tenta recuperar um valor em cache. Se houver uma perda no cache, um serviço de back-end será chamado para fornecer o valor. Neste exemplo a política wait não é concluída até todas as políticas filho imediatas serem concluídas, porque o atributo for está definido como all. Neste exemplo as variáveis de contexto (execute-branch-one, value-one, execute-branch-two e value-two) são declaradas fora do escopo desta política de exemplo.

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

Para obter mais informações sobre como trabalhar com políticas, consulte: