Documentation for a newer release is available. View Latest

Calendars

Un Calendar es un mecanismo usado para excluir bloques de tiempo sin importar la especificación de tiempo que se haya suministrado. Por ejemplo, si un trabajo está configurado para ejecutarse una vez al día, es posible ampliar esta especificación con un calendario para decir que solo debe ejecutarse una vez al día en días laborables. Hay más información aquí.

Si no se proporciona un calendar como parte de la JobSpecification, entonces se usa el calendario por defecto. Para definir un calendario por defecto, el archivo de configuración debe contener ipf.persistent-scheduler.quartz.calendars.default y ipf.persistent-scheduler.quartz.calendars como en el ejemplo de abajo.

Si no se configura un calendario por defecto, entonces el scheduler no usará calendarios y la expresión cron será respetada 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 Calendar

Los calendarios de Quartz pueden ser de los siguientes tipos:

Nombre del tipo de Calendar Descripción Ejemplo

Daily

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

exclude {
    start-time = "03:00"
    end-time = "05:00"
}
timezone = UTC

Monthly

Excluir días de un mes

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

Weekly

Excluir días de la semana de una semana. Los días están indexados desde 1 y comienzan en domingo, es decir, Domingo = 1, Lunes = 2, etc.

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

Cron

Excluir por una expresión cron personalizada

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

Holiday

Excluir fechas explícitas (útil para moveable feasts como Pascua o festivos bancarios del Reino Unido) en formato ISO 8601 yyyy-MM-dd

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

Annual

Excluir fechas de calendario de cada año en formato MM-DD

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

Un trabajo solo puede usar un calendario.