Reintentos de actividad en Microsoft Fabric Data Factory

La mayoría de las actividades de canalización en Data Factory admiten reintentos automáticos. Cuando una actividad falla debido a un error transitorio (una API con limitación de tasa, una breve interrupción del servicio o una dependencia inestable), puede configurarla para que vuelva a intentarlo automáticamente un número determinado de veces antes de marcar la actividad como fallida.

También puedes controlar cuánto tiempo espera la actividad entre intentos, y establecer el número de reintentos y esperar individualmente para cada actividad, para ajustar el comportamiento de reintentos con precisión en todo tu flujo de trabajo.

Configurar los ajustes de reintento en una actividad

Para configurar el comportamiento de reintento para una actividad:

  1. Seleccione la actividad en el lienzo de la canalización.

  2. En la pestaña General del panel de propiedades, active la casilla Habilitar reintentos para activar la funcionalidad de reintento.

    Captura de pantalla que muestra la configuración de reintentos en la pestaña General del panel de propiedades de una actividad, incluyendo Activar reintentos resaltados, conteo de intentos, condiciones de reintento e intervalo de reintentos.

  3. Establezca el campo Reintento en el número de reintentos. Escriba un valor entre 1 y 1000. El valor predeterminado es 1.

  4. En tipo de intervalo de reintento, seleccione Retraso fijo o creciente para controlar cómo se calcula el tiempo de espera entre intentos. Luego configura los campos de intervalo para el tipo que elijas. Consulta intervalos de reintento para más detalles.

    Captura de pantalla que muestra la configuración del intervalo de reintento configurada al tipo de intervalo fijo en la pestaña General del panel de propiedades de una actividad.

    Captura de pantalla que muestra la configuración del intervalo de reintento configurada al tipo de intervalo de retardo creciente en la pestaña General del panel de propiedades de una actividad.

  5. Opcionalmente, configure las condiciones de reintento (versión preliminar) para controlar cuándo se producen reintentos en función de criterios de error específicos.

    Captura de pantalla que muestra la configuración de condiciones de reintento en la pestaña General del panel de propiedades de una actividad.

Intervalos de reintento

El intervalo de reintento controla cuánto tiempo espera una actividad entre intentos. Usa Fixed para fallos breves y previsibles. Utiliza retardo creciente para interrupciones prolongadas. Implementa un retroceso exponencial, donde el tiempo de espera crece con cada intento, dando a los servicios aguas arriba progresivamente más tiempo para recuperarse.

El ajuste Tipo de intervalo de reintento controla qué enfoque se debe usar.

Tipo Comportamiento
Fijado (por defecto) Espera el mismo número de segundos entre cada intento.
Retraso creciente Utiliza retroceso exponencial: cada intento espera un intervalo aleatorio desde un rango que crece exponencialmente, hasta un máximo configurable.

Fijo

Cuando seleccionas Fijo, la actividad espera el mismo número de segundos entre cada intento de reintento. Utiliza este tipo cuando los fallos sean breves y predecibles.

Configura el intervalo de reintento (seg) al número de segundos para esperar. El valor predeterminado es 30 segundos.

Captura de pantalla que muestra la configuración del intervalo de reintento configurada al tipo de intervalo fijo en la pestaña General del panel de propiedades de una actividad.

Aumento del retraso

Al seleccionar Retardo creciente, el tiempo de espera aumenta exponencialmente entre intentos, lo que se conoce como retroceso exponencial. Este patrón otorga progresivamente más tiempo a los servicios aguas arriba para recuperarse, reduce la carga repetida en sistemas en dificultades y permite que las tuberías se recuperen por sí solas tras cortes largos sin intervención manual.

El motor de reintentos selecciona un intervalo aleatorio de un rango que crece exponencialmente antes de cada intento:

Retry Alcance mínimo Alcance máximo
1 max(0, intervalo mínimo) min(intervalo, intervalo máximo)
2 max(intervalo, intervalo mínimo) min(2 × intervalo, intervalo máximo)
3 máx. (intervalo de 2 ×, intervalo mínimo) min(4 × intervalo, intervalo máximo)
4 máx. ( intervalo de 4 ×, intervalo mínimo) min(8 × intervalo, intervalo máximo)

El alcance se duplica en cada intento hasta que el límite superior alcanza el intervalo máximo de reintentos, tras lo cual todos los intentos restantes esperan en ese máximo. La selección aleatoria dentro de cada rango reduce la probabilidad de que los reintentos simultáneos de la canalización coincidan en el mismo sistema ascendente en un mismo momento.

Dos campos están disponibles cuando se selecciona Creciente Retardo:

Campo Description Predeterminado
Intervalo de reintento (seg) El intervalo inicial. Define la base del rango de retroceso. 30 segundos
Intervalo máximo de reintentos (sec) El límite superior del intervalo de espera. El tiempo de espera de los reintentos nunca supera este valor. 3600 segundos

Captura de pantalla que muestra la configuración del intervalo de reintento configurada al tipo de intervalo de retardo creciente en la pestaña General del panel de propiedades de una actividad.

Note

Los campos de intervalo de reintento no admiten expresiones dinámicas. Los valores deben ser enteros estáticos.

Configuración de condiciones de reintento (versión preliminar)

De forma predeterminada, una actividad se vuelve a intentar ante cualquier fallo. Utiliza condiciones de reintento para especificar qué errores desencadenan un reintento. Este enfoque te ayuda a evitar desperdiciar intentos en errores que no se resuelven, como fallos de autenticación.

Para agregar una condición de reintento:

  1. En la sección Condiciones de reintento (versión preliminar), seleccione el + botón para agregar una nueva fila de condición.
  2. Elija un campo para evaluar:
    • Mensaje de error: el contenido del texto del mensaje de error.
    • Tipo de fallo: La categoría de fallo, como error de usuario o error del sistema.
    • Código de error: El código de error específico que se devolvió, como el 429 para limitar la tasa.
  3. Seleccione un Operador para definir el tipo de coincidencia, como Contains.
  4. Introduzca un valor con el que comparar.
  5. Use la columna And/Or para combinar varias condiciones. Seleccione Y para requerir que coincidan todas las condiciones, o bien para volver a intentarlo cuando coincida cualquier condición.

Por ejemplo, para reintentar solo en errores de limitación de velocidad, añada una condición con Campo establecido en Error code, Operador establecido en Contains y Valor establecido en 429.

Importante

El intervalo de reintento se ejecuta antes de evaluar la condición. Por ejemplo, si establece un intervalo de reintento de 1 hora y no se cumple la condición de reintento, la canalización sigue esperando la hora entera antes de continuar con la siguiente actividad o finalizar la ejecución de la canalización.

Tip

Cuando no se especifican las condiciones de reintento, la actividad vuelve a intentarse ante cualquier fallo. Agregue condiciones para ser más selectivas sobre qué errores desencadenan reintentos.

Limitaciones de reintento conocidas

  • Compatibilidad de actividades: se admiten reintentos condicionales para tipos de actividad específicos, como Copia de datos, Cuaderno, Flujo de datos y Procedimiento almacenado.
  • Propiedades de error: las condiciones de reintento pueden coincidir con el código de error, el mensaje de error y el tipo de error. No todos los campos de error específicos del conector están disponibles para buscar coincidencias.