Комментарии 11
Добрый вечер. А почему нельзя обойтись @EnableScheduling вместе с @Scheduled(cron = "* * * * * *")?
+1
Есть предположение, что для удобства масштабирования сервиса в кластере: Quartz вполре себе умеет держать информацию о задачах и их состоянии в БД. Если же баловаться с аннотациями, то придеться самому думать над тем, как, например, ограничить одновременный запуск задачи на разных нодах. Если где не прав — критику и пояснения приветствую.
0
По своему опыту могу сказать что кварц — штука крайне неудобная, с запутанным API и создаёт кучу непонятных таблиц, которых сложно контролировать.
Как уже выше писали @EnableScheduling работает превосходно. Лок на уровне базы, если надо, делается элементарно. Если требуется динамическое обновление, то это делается в один класс.
В конце концов, можно периодически запускать проверку и через CronSequenceGenerator узнавать нужно ли что либо выполнять в данный момент.
Как уже выше писали @EnableScheduling работает превосходно. Лок на уровне базы, если надо, делается элементарно. Если требуется динамическое обновление, то это делается в один класс.
В конце концов, можно периодически запускать проверку и через CronSequenceGenerator узнавать нужно ли что либо выполнять в данный момент.
0
А если без базы, то прекрасно локи ставятся через zookeeper
В 2013 писали на кварце приложение большое, что ни месяц — бага на проде. Зависла Джоба.
0
0
1. можно использовать ShedLock, настраивается несложно, работает на аннотациях. Мне не нравится, в т.ч. из-за кривого названия:)
2. запрос в БД вида
2. запрос в БД вида
INSERT ... ON CONFLICT UPDATE ... RETURN ...
. вызывать можно внутри метода, помеченного, как @Scheduled, установив его в самом начале. если insert/update проходит и что-то вернулось, выполняем дальнейшие действия0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Добавление Quartz в Spring Boot