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 |
|---|---|---|
|
Excluir bloques de tiempo de un día con una zona horaria. Use |
exclude {
start-time = "03:00"
end-time = "05:00"
}
timezone = UTC
|
|
Excluir días de un mes |
|
|
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. |
|
|
Excluir por una expresión cron personalizada |
|
|
Excluir fechas explícitas (útil para moveable feasts como Pascua o festivos bancarios del Reino Unido) en formato ISO 8601 |
|
|
Excluir fechas de calendario de cada año en formato |
|
| Un trabajo solo puede usar un calendario. |