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

Выполнение кода по расписанию в 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 разработчик
394 вакансии

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

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань