Как стать автором
Обновить

Выполнение кода по расписанию в Spring Framework

Время на прочтение 2 мин
Количество просмотров 28K
Тут приспичило мне периодически запускать некоторый код в небольшом проектике написанном на Spring Framework. Я уж было приготовился по старой памяти (еще со спринга 2.x) к долгому прикручиванию quartz-а и написании кучи конфигов на xml, как оказалось все значительно проще

Документация Spring Framework как обычно дает исчерпывающий, но иногда избыточный ответ

На самом деле все просто:

1. Делай раз — добавь в свой спринговый конфиг (минимальный все-таки в любом проекте присутсвует — не все еще делается аннотациями) task namespace, что бы выглядело примерно так (обратите внимание на слово task):
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd
www.springframework.org/schema/context www.springframework.org/schema/context/spring-context.xsd
www.springframework.org/schema/tx www.springframework.org/schema/tx/spring-tx.xsd
www.springframework.org/schema/task www.springframework.org/schema/task/spring-task.xsd">


2. Делай два — там же сконфигури шедулер:

<task:annotation-driven executor="executor" scheduler="scheduler"/>
<task:executor id="executor" pool-size="5"/>
<task:scheduler id="scheduler" pool-size="10"/>


3. Делай три — повесь на метод какого-нибудь бина аннотацию @Scheduled, например:
@Scheduled(fixedDelay=5000)
public void doSomething() {
// do something every 5 seconds
}

Все! В очередной раз убедился в своей любви к спрингу — когда технологии разрабатывается не ради технологий, а ради удобства разработчиков
Теги:
Хабы:
+19
Комментарии 16
Комментарии Комментарии 16

Публикации

Истории

Работа

Java разработчик
342 вакансии

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн