nextFireTime и время начала не выровнены
Я пытаюсь создать кварцевую работу, которая запускается ежедневно в 10:00, но сначала начинается в 9:30. Я делаю это, используя время запуска и выражение cron следующим образом:
CronTrigger newTrigger = newTrigger().withIdentity(jobName + i, jobName)
.startAt(startTime).endAt(endTime).withSchedule(cronSchedule(cronExpression)
.withMisfireHandlingInstructionFireAndProceed().inTimeZone(timeZone)).build();
Выражение cron:
0 0 10 * * ?
Но работа запускается в 10:00 (и игнорирует время запуска). Если я смотрю на qrtz_triggers
таблица в БД я вижу, что start_time
действительно 9:30, но next_fire_time
10:00
Что я здесь не так делаю?
1 ответ
Время начала и окончания - это окно, в котором расписание cron активно. Они не указывают первый и последний раз, когда сработает триггер.
Например, расписание, которое запускается каждый час с временем начала 9:30 и временем окончания 18:30, будет активировано в течение этого периода.
В вашем случае это не имеет значения, поскольку ваш график работы cron выполняется один раз в день в 10 часов утра, и это находится в пределах времени начала и окончания.
Если вы хотите запускать работу в 9:30 и 10:00 каждый день, то самый простой способ - создать два триггера cron, которые будут вызывать одну и ту же работу.