Как будет измеряться период @Scheduled cron?

Мне нужно описать, как работает аннотация @Scheduled.
Существует три определения для Scheduled: fixedDelay, fixedRate и cron.
В то время как период fixedDelay будет измеряться от времени завершения каждого предыдущего вызова, период fixedRate будет измеряться между последовательными временами начала каждого вызова.

Но как насчет периода cron? Как он будет измеряться?

Редактировать:
Я знаю, что cron - это не период, как обе фиксированные данные. Я опишу мой вопрос на примере.

Пример-метод требует 2 минуты, чтобы закончить. Но с @Scheduled -Annotation я буду запускать метод каждую минуту.

@Scheduled(fixedDelay = 1000)
public void exampleMethod(){}

fixedDelay будет ждать, пока метод не будет завершен, а затем он подождет одну минуту. Таким образом, метод будет запускаться каждые 3 минуты.

@Scheduled(fixedRate = 1000)
public void exampleMethod(){}

fixedRate будет ждать одну минуту между последовательными временами запуска каждого вызова. Таким образом, метод будет запускаться каждую минуту, независимо от того, завершен метод или нет.

@Scheduled(cron = "0 * * * * *")
public void exampleMethod(){}

Поэтому я запускаю cron каждую минуту. Будет ли метод выполняться каждую минуту или cron будет ждать завершения метода?

2 ответа

Решение

Cron - это формат, который описывает, когда должно выполняться задание. Вы можете увидеть много хороших примеров здесь

Cron не является perod, в формате аналогичных записей указывается периодичность в планировщике Linux Cron.

Другие вопросы по тегам