IPF Persistent Scheduler

Introducción

IPF’s Persistent Scheduler le permite programar trabajos de cualquier tipo.

Se basa en el Programador de Quartz y admite dos tipos de trabajo scheduling:

  • Trabajos recurrentes: definidos utilizando cron expressions, que son temporizadores especializados que definen puntos en el tiempo para la ejecución recurrente de tareas.

  • Trabajos únicos: definidos utilizando un Java LocalDateTime or Instant objeto para ejecución única con precisión de milisegundos scheduling.

El scheduler también admite calendarios, que pueden ser utilizados para excluir ciertos bloques de tiempo de scheduling. Esta configuración permite la ejecución flexible de trabajos tanto únicos como recurrentes. También cuenta con una capa de persistencia, lo que significa que los trabajos se guardan en una base de datos, por lo que incluso si una aplicación falla o se reinicia, los trabajos programados anteriormente se recuperan y continúan su ejecución según lo planeado.

El Programador incluye medidas de seguridad, como un módulo de reprogramación que se ejecuta durante el inicio. Este módulo restaura todos los trabajos programados previamente en Quartz tras un fallo. Para trabajar con el Programador, comience con el SchedulingModuleInterface.

Finalmente, el persistent scheduler está diseñado para ejecutarse en un Akka Cluster para garantizar que los trabajos se programen en todo el clúster y puedan sobrevivir a cualquier número de fallos de nodos (incluyendo un total outage). Ciertos aspectos como la rehidratación de trabajos (lo que significa recargar trabajos tras un fallo) y el procesamiento de trabajos fallidos se ejecutan en un Cluster Singleton para prevenir el procesamiento duplicado en estos escenarios.

La arquitectura para el scheduler se muestra a continuación:

service architecture