Esperar
SE APLICA A: todos los niveles de API Management
La directiva wait
ejecuta sus directivas secundarias inmediatas en paralelo y espera a que se completen todas o una de ellas para finalizar. La directiva wait
puede tener como directivas secundarias inmediatas una o varias de las siguientes: send-request
, cache-lookup-value
y choose
.
Nota:
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<wait for="all | any">
<!--Wait policy can contain send-request, cache-lookup-value,
and choose policies as child elements -->
</wait>
Atributos
Atributo | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
para | Determina si la directiva wait espera a que se hayan completado todas las directivas secundarias inmediatas o solo una. Los valores permitidos son:- all : espera a que se hayan completado todas las directivas secundarias inmediatas.- any : espera a que se haya completado cualquier directiva secundaria inmediata. En cuanto se completa la primera, la directiva wait también se completa y finaliza la ejecución de cualquier otra directiva secundaria inmediata.Se permiten expresiones de directiva. |
No | all |
Elementos
Solo puede contener como elementos secundarios a las directivas send-request
, cache-lookup-value
y choose
.
Uso
- Secciones de la directiva: entrante, saliente y back-end
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
Ejemplo
En el ejemplo siguiente hay dos directivas choose
que son directivas secundarias inmediatas de la directiva wait
. Cada una de estas directivas choose
se ejecuta en paralelo. Cada directiva choose
intenta recuperar un valor almacenado en memoria caché. Si se produce un error de memoria caché, se llama a un servicio back-end para que proporcione el valor. En este ejemplo la directiva wait
no se completa hasta que lo han hecho todas sus directivas secundarias inmediatas, ya que el atributo for
está establecido en all
. Las variables de contexto (execute-branch-one
, value-one
, execute-branch-two
y value-two
) quedan fuera del ámbito de esta directiva de ejemplo.
<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>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Creación de directivas mediante Microsoft Copilot en Azure