Calendarios

Un calendario es un mecanismo utilizado para excluir bloques de tiempo independientemente de la especificación temporal. que fue suministrado. Por ejemplo, si un trabajo está programado para ejecutarse una vez al día, es posible aumentar esta especificación con un calendario para indicar que debe ejecutarse solo una vez al día en días laborables. Se dispone de más información www.quartz-scheduler.org/documentation/quartz-2. 3. 0/tutorials/tutorial-lesson-04.html#TutorialLesson4-Calendars[aquí].

Si no se proporciona un calendario como parte de la JobSpecification, entonces se utiliza el calendario predeterminado. Para definir un calendario predeterminado, el archivo de configuración debe contener ipf.persistent-scheduler.quartz.calendars.default y ipf.persistent-scheduler.quartz.calendars como en el ejemplo a continuación.

Si no se ha configurado un calendario predeterminado, entonces el scheduler no utilizará calendarios y el cron expression será honrado sin exclusiones.

ipf.persistent-scheduler.quartz.calendars.default = "DefaultCalendar"

ipf.persistent-scheduler {
  quartz {
    calendars {
      DefaultCalendar {
        type = Annual
        description = "Default calendar"
        exclude-dates = ["12-25", "01-01"]
      }
    }
  }
}

Tipos de Calendario

Quartz Los calendarios pueden ser de los siguientes tipos:
Nombre del tipo de calendario Descripción Ejemplo

Daily

Excluya bloques de tiempo de un día con una zona horaria. Utilice UTC o la lista de zonas horarias aquí.

excluir {
 start-time = "03:00"
 end-time = "05:00"
}
zona horaria = UTC

Monthly

Excluya días de un mes

exclude-days = [1, 3, 5, 7]

Weekly

Excluya los días de la semana de una semana. Los días están indexados desde 1 y comienzan el domingo, es decir, domingo = 1, lunes = 2, etc.

exclude-days = [1, 7] //will exclude the weekend

Cron

Excluya por un custom cron expression

exclude-expression = * * 0-7, 18-23? * *

Holiday

Excluir fechas explícitas (útil para fiestas móviles como la Semana Santa o los días festivos bancarios del Reino Unido) en ISO 8601 yyyy-MM-dd formato

exclude-dates = ["2024-03-31", "2025-04-20"] //excludes Easter 2024 and 2025

Annual

Excluya las fechas del calendario de cada año en MM-DD formato

exclude-dates = ["01-01", "25-12"] //excludes New Year’s Day and Christmas Day every year

Un trabajo solo puede utilizar un calendario.