Кварцевые задания планируются с помощью триггера (org.quartz.Trigger
). Интерфейс триггера предоставляет два полезных метода:
Date getNextFireTime();
Date getFireTimeAfter(Date afterTime);
Итак, возьмите свой триггер, позвоните getNextFireTime()
. Теперь вы знаете, когда это будет дальше. Затем позвоните getFireTimeAfter( next )
и передайте его в следующий раз. Повторяйте, пока у вас не будет достаточно времени выполнения для вашего варианта использования.
Итак, для пяти запусков что-то вроде этого должно работать:
List<Date> getNextFiveRuns(Trigger trigger) {
List<Date> runs = new ArrayList<>();
Date next = trigger.getNextFireTime();
// check for null, which indicates a non-repeating trigger or one with an end-time
while(next != null && runs.size() < 5) {
runs.add(next);
next = trigger.getFireTimeAfter(next);
}
return runs;
}
Кварц 2.3.0 JavaDoc: org.quartz.Trigger