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

Выполнение кода по расписанию в 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
}

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

Публикации

Истории

Работа

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

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

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург