Compartir a través de


Ejecuta trabajos continuamente

Use el modo continuo para programar cargas de trabajo para que se ejecuten continuamente. Databricks recomienda usar el modo continuo para cargas de trabajo de streaming siempre activadas.

El modo continuo reemplaza las recomendaciones heredadas de los procesos de flujo estructurado para configurar trabajos con una política de reintento ilimitado y un máximo de una ejecución en paralelo.

Importante

Los trabajos con programaciones continuas en la computación sin servidor funcionan con desencadenadores limitados de Structured Streaming, como Trigger.AvailableNow. El programador de trabajos reinicia la tarea cuando se completa y el punto de control de streaming garantiza que no se vuelva a procesar ningún dato.

Los desencadenadores basados en tiempo, como Trigger.ProcessingTime y Trigger.Continuous, no se admiten en la computación sin servidor. Consulte Limitaciones de proceso sin servidor.

Para el streaming continuo con requisitos de baja latencia en el proceso sin servidor, use el modo desencadenado frente a la canalización continua en modo continuo.

Configuración del trabajo para que se ejecute en modo continuo

Para configurar un trabajo para que se ejecute en modo continuo, haga lo siguiente:

  1. En la barra lateral del área de trabajo de Azure Databricks, haga clic en Tareas y Pipelines.

  2. Opcionalmente, seleccione los filtros Trabajos y Propiedad de mí .

  3. Haga clic en el vínculo Nombre del trabajo.

  4. Haga clic en Agregar desencadenador en el panel Detalles del trabajo , seleccione Continuo en Tipo de desencadenador.

  5. Opcionalmente, seleccione un modo de reintento de tareas. Puede optar por reintentar En caso de fallo para las tareas fallidas dentro de un trabajo, o seleccionar Nunca para solo reintentar al nivel de trabajo. El modo de reintento de tareas tiene como valor predeterminado En caso de error en modo continuo.

    Nota:

    Para un trabajo ya existente, es posible que tenga que hacer clic primero en Configurar modo de reintento y, a continuación, seleccionar un modo de reintento de tareas.

  6. Haz clic en Guardar.

Para detener un trabajo continuo, haga clic en el botón Pausar. Haga clic en Reanudar para reiniciar el trabajo en modo continuo.

Nota:

  • Solo puede haber una instancia en ejecución de un trabajo continuo.
  • Hay un pequeño retraso entre la finalización de una ejecución y un nuevo inicio de ejecución. Este retraso debe ser inferior a 60 segundos.
  • No se pueden usar dependencias de tareas con un trabajo continuo.
  • No se pueden usar directivas de reintento en un trabajo continuo. En su lugar, los trabajos continuos reintentan automáticamente todo el trabajo en caso de error mediante un algoritmo de retroceso exponencial .
  • Además, puede configurar reintentos a nivel de tarea estableciendo el modo de reintento de la tarea en En caso de fallo.
  • Seleccione Ejecutar ahora para desencadenar una nueva ejecución de trabajo en un trabajo continuo que está en pausa.
  • Para que el trabajo continuo seleccione una nueva configuración, cancele la ejecución existente. Se inicia automáticamente una nueva ejecución. También puede hacer clic en Reiniciar ejecución para reiniciar la ejecución del trabajo con la configuración actualizada.

¿Cómo se controlan los errores de los trabajos continuos?

Los errores se administran mediante un algoritmo de retroceso exponencial .

Cuando el modo de reintento de tareas se establece en En caso de fallo, las tareas con errores se reintentan con un retraso exponencialmente creciente hasta que se alcanza el número máximo de reintentos permitidos (tres para una única tarea). Una vez alcanzados los reintentos máximos, se cancela la ejecución y se desencadena una nueva ejecución. En el caso de los trabajos con varias tareas, una tarea con errores desencadena una nueva ejecución si no hay ninguna otra tarea en ejecución, o todas las demás tareas no completadas también se encuentran en un estado de error o reintento.

Los errores consecutivos en un nivel de trabajo también se administran mediante retroceso exponencial, lo que permite que los trabajos continuos se ejecuten sin pausar y vuelvan a un estado correcto cuando se produzcan errores recuperables.

Cuando un trabajo continuo supera el umbral permitido de errores consecutivos, a continuación se describe cómo se administran las ejecuciones de trabajos posteriores:

  1. El trabajo se reinicia después de un período de reintento establecido por el sistema.
  2. Si se produce un error en la siguiente ejecución del trabajo, se aumenta el período de reintento y el trabajo se reinicia después de este nuevo período de reintento.
    1. Para cada error de ejecución de trabajo posterior, el período de reintento aumenta hasta un período máximo establecido por el sistema. Después de alcanzar el período máximo de reintento, el trabajo se sigue reintentando usando el período máximo de reintento. No hay ningún límite en el número de reintentos de un trabajo continuo.
    2. Si la ejecución del trabajo se completa correctamente e inicia una nueva ejecución o si la ejecución supera un umbral sin error, el trabajo se considera correcto y la secuencia de retroceso se restablece.

Puede reiniciar un trabajo continuo en el estado de espera exponencial en la Jobs UI o pasando el identificador de trabajo a la solicitud run-now en la Jobs API.