Запускать работу с аннотацией Spring @Scheduled в разное время в разные дни недели - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть работа, которую нужно запустить

  • в 8:00 по будням
  • в 10:00 по выходным

Мое мышление is - либо

  • выражение CRON должно обрабатывать их оба вместе, чтобы оно могло быть задано внутри аннотации @Scheduled
  • В противном случае необходимо принять одну аннотацию @Scheduled 2 CRON выражение.

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 13 марта 2020

@Schedules аннотация может использоваться для установки нескольких выражений таймера на основе календаря.

Эта аннотация избавит от избыточности записи одного и того же метода несколько раз.

В следующем примере первое выражение устанавливает таймер, срок действия которого истекает в последнем день каждого месяца. Второе выражение устанавливает таймер, который истекает каждую пятницу в 23:00.

@Schedules ({
    @Schedule(dayOfMonth="Last"),
    @Schedule(dayOfWeek="Fri", hour="23")
})
public void doPeriodicCleanup() { ... }
1 голос
/ 14 февраля 2020

Если ваш метод выполняет точно такую ​​же работу, напишите его один раз и вызовите его дважды с двумя разными CRON.

public void doStuff(){
//do stuff
}

@Scheduled //With 8 AM Weekdays CRON
doStuff();

@Scheduled //With 10 AM Weekends CRON
doStuff();
...