Очередь заданий в Spring Boot - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть приложение, которое слушает события.На каждом мероприятии я делаю что-то и отправляю другое событие в результате.

[NameUpdated (Joe)] -> [do stuff] -> [PersonUpdated (Joe)] 

Проблема в том, что у меня есть несколько событий, которые приводят к моему окончательному результату:

[NameUpdated (Joe)] -> [do stuff] -> [PersonUpdated (Joe, 29, "")]
[AgeUpdated (27)]   -> [do stuff] -> [PersonUpdated (Joe, 27, "")] 
[JobUpdated (Dev)]  -> [do stuff] -> [PersonUpdated (Joe, 27, DEV)]

Все события собираются вместе за очень короткое время (скажем, в течение 1второй).В результате мое приложение также отправляет три события в секунду.Но только последний представляет интерес.

Моя идея - немного отложить исполнение.Когда я получаю первое событие, я хочу создать задание, которое будет выполнено через пару секунд.Когда я получаю второе и третье событие, я могу проверить, есть ли уже работа или нет.

Я ищу некоторые функции Spring (Boot) для этого.Нетрудно реализовать очередь и планировщик, обрабатывающий ее, но я не хочу делать много вещей, созданных вручную.Поэтому я ищу какой-нибудь умный способ добиться этого.

...