Wait

APLICA-SE A: Todas as camadas de gerenciamento de API

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

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar 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 Description Necessário Predefinição
para Determina se a wait política aguarda a conclusão imediata de todas as políticas secundárias ou apenas uma. Os valores permitidos são:

- all - Aguarde a conclusão de todas as políticas imediatas para crianças
- any - Aguarde a conclusão imediata de qualquer política de crianças. Uma vez concluída a primeira política subordinada imediata, a política é concluída e a wait execução de quaisquer outras políticas secundárias imediatas é encerrada.

São permitidas expressões de política.
Não all

Elementos

Pode conter apenas send-requestcomo elementos filho , cache-lookup-valuee choose políticas.

Utilização

Exemplo

No exemplo a seguir, há duas choose políticas como políticas filhas imediatas da wait política. Cada uma dessas choose políticas é executada em paralelo. Cada choose política tenta recuperar um valor armazenado em cache. Se houver uma falha de cache, um serviço de back-end será chamado para fornecer o valor. Neste exemplo, a wait política não é concluída até que todas as suas políticas filhas imediatas sejam concluídas, porque o for atributo 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: