Consulta los conectores compatibles para Application Integration.

Estrategias de manejo de errores para tareas

La estrategia de manejo de errores de una tarea especifica la acción que se debe hacer si la tarea falla debido a un error temporal.

Configura estrategias de manejo de errores

Para configurar una estrategia de manejo de errores en una tarea, sigue estos pasos:

  1. Haz clic en la tarea existente en tu editor de integración. Aparecerá el panel de configuración de la tarea.
  2. En el panel de configuración de la tarea, expande la sección Manejo de errores. En la siguiente imagen, se muestra la sección Manejo de errores:

    Estrategia de manejo de errores Estrategia de manejo de errores

    En la sección Manejo de errores, sigue estos pasos:

    1. Para agregar una nueva política de fallas, haz clic en + Agregar política de fallas. Si se configuran varias políticas de fallas condicionales, se verifican y se comparan en orden.
      1. En el campo Estrategia de reintento, selecciona la estrategia de manejo de errores que deseas usar. Para obtener una lista de estrategias, consulta Estrategias de reintento.
      2. En el campo Condición de reintento (Retry condition), ingresa la condición que debe coincidir con el error para que se ejecute esta estrategia de error. Por ejemplo, para una tarea Llamar a extremo de REST, para ejecutar la estrategia de error si el código de error coincide con 404, ingresa lo siguiente:
        $`ErrorInfo.code`$ = 404
        Para obtener información sobre cómo agregar estas condiciones, consulta Condiciones de reintento.
    2. En la sección Política de error predeterminada, agrega la política predeterminada que se debe aplicar si no coincide ninguna política de error condicional. La política de fallas predeterminada es opcional.
    3. En la sección Error Catcher, agrega el capturador de errores para tu integración.

Para obtener más información sobre los códigos y el manejo de errores, consulta Manejo de errores.

Estrategias de reintentos

En las siguientes tablas, se describen las diferentes estrategias de manejo de errores que puedes usar para una tarea:

Tipo de estrategia Descripción
Irrecuperable Detiene la ejecución de toda la integración y marca el estado de ejecución como Con errores.
Ignorar Ignora la falla de la tarea. La integración continúa ejecutando las siguientes tareas si suponemos que la tarea con errores tuvo Finalizada.
Ninguna Detiene la ejecución de la tarea y marca el estado de la integración como Con errores. Si existe una ruta alternativa a la tarea final (tarea de hoja), se ejecutan las tareas en la ruta de acceso alternativa. Si todas las tareas en la ruta alternativa se ejecutan de forma correcta, marca el estado de integración como Finalizada.
Reiniciar la integración en la retirada Ejecuta toda la integración desde la primera tarea. Sin embargo, es posible que la tarea falle una vez más. Para evitar fallas repetidas, especifica el intervalo entre reinicios en el campo Reintentar (en segundos) y la cantidad de intentos de reinicio permitidos en el campo Recuento máximo de reintentos.
Reintentar la tarea con la retirada exponencial Ejecuta la integración desde la tarea con errores. Si la tarea falla durante un reintento, el intervalo entre cada reintento aumenta con el poder de 2. Existe una demora de 1 a 5 segundos que se agrega al tiempo de retirada.

Por ejemplo, si el intervalo de reintento especificado es de 3 segundos, el primer reintento se produce después de 3 segundos. El segundo reintento se produce después de 9 segundos, el tercer reintento después de 81 segundos, y así sucesivamente. El proceso continúa hasta alcanzar la cantidad máxima de reintentos o se logra con éxito la tarea, lo que ocurra primero.

Reintentar la tarea con un intervalo fijo Ejecuta la integración desde la tarea con errores. Si la tarea falla durante un reintento, el intervalo entre cada intento de reintento es constante.

Por ejemplo, si el intervalo de reintento especificado es de 3 segundos, los reintentos se producen cada 3 segundos. El proceso continúa hasta alcanzar la cantidad máxima de reintentos o se logra con éxito la tarea, lo que ocurra primero.

Reintentar la tarea con la retirada lineal Ejecuta la integración desde la tarea con errores. Si la tarea falla durante un reintento, el intervalo de tiempo entre cada reintento aumenta de forma lineal. Existe una demora de 1 a 5 segundos que se agrega al tiempo de retirada.

Por ejemplo, si el intervalo de reintento especificado es de 3 segundos, el primer reintento se produce después de 3 segundos. El segundo reintento se produce después de 6 segundos, el tercer reintento después de 9 segundos, y así sucesivamente. El proceso continúa hasta alcanzar la cantidad máxima de reintentos o se logra con éxito la tarea, lo que ocurra primero.

Reintentos de retirada

El límite de simultaneidad predeterminado se establece en 50 ejecuciones para cada proyecto y región. Las ejecuciones fallidas se ponen en cola y se vuelven a intentar con un algoritmo de retirada exponencial, que aumenta gradualmente el tiempo de espera entre los reintentos hasta 10 veces. Por ejemplo:

  1. Ejecuta una integración.
  2. Si la solicitud falla, espera 10 minutos y vuelve a intentarla.
  3. Si la solicitud falla, espera 20 minutos y vuelve a intentarla.
  4. Si la solicitud falla, espera 40 minutos y vuelve a intentarla.
  5. Y así sucesivamente, hasta un máximo de 10 reintentos de retirada.

Condiciones de reintento

La condición de reintento especifica la condición que debe coincidir para que se ejecute la estrategia de manejo de errores. En la siguiente tabla, se describen los operadores y las funciones compatibles que puedes usar en la condición de reintento:

Operadores admitidos

En la siguiente tabla, se describen los operadores compatibles disponibles para usar en condiciones de reintento.

Operador Descripción Ejemplo
= Comprueba la igualdad entre dos valores. $var$ = "value"
!= Comprueba la desigualdad entre dos valores $var$ != "value"
< Comprueba si un valor es menor que otro 5 < 10
<= Comprueba si un valor es menor o igual que otro $var$ <= 5
> Comprueba si un valor es mayor que otro. 1 > 0
>= Comprueba si un valor es superior o igual que otro $var$ >= 0
: Comprueba si una cadena contiene una subcadena dentro de ella o si una lista contiene un valor primitivo específico.

$longString$ : "substring"

$list of values$ : "value"

Y Comprueba dos expresiones y muestra un valor verdadero si ambas expresiones se evalúan como verdaderas. $a$ > $b$ AND $b$ < $c$
O Verifica dos expresiones y muestra verdadero si una de las expresiones se evalúa como verdadera. $a$ > $b$ OR $b$ < $c$
NOT Operador de negación. Cambia el resultado de una expresión. NOT($var$ = "value")

Funciones compatibles

En la siguiente tabla, se describen las funciones compatibles disponibles para usar en condiciones de reintento.

Función Descripción
exists(VARIABLE) Comprueba si existe una variable determinada
does_not_exist(VARIABLE) Comprueba si no existe una variable determinada
is_empty(VARIABLE) Comprueba si una variable determinada es una lista AND está vacía. Admite el tipo de variable de array, excepto el array JSON.
is_not_empty(VARIABLE) Comprueba si una variable determinada es una lista Y no está vacía. Admite el tipo de variable de array, excepto el array JSON.