Запланированные сообщения через заданные повторяющиеся интервалы - PullRequest
1 голос
/ 05 ноября 2019

У меня есть следующие задачи в домене Spring-Boot / JPA:

id: 1, task: GET:http://example.com/file.zip, schedule: every-minute
id: 2, task: DELETE:/some/path, schedule: every-5-minutes
id: 2, task: TOUCH:/some/path, schedule: every-1-hour

У меня есть служба Spring под названием taskHandlerService, которая способна выполнять вышеуказанные задачи, но мне было интересно, какзапланировать их так, чтобы сообщения достигали taskHandlerService с указанными интервалами.

Список задач часто меняется, поэтому эти задания не выполняются долго.

Наивный подход, который я мог быздесь можно создать несколько Quartz-заданий, по одному для каждой задачи в списке, а затем задание позаботится о вызове метода для taskHandlerService с сообщением в качестве аргумента.

Есть ли здесьлучший подход для решения этой проблемы?

обновление: после небольшого поиска отложенная очередь кажется лучшим подходом. Но не уверен, как преобразовать выражение Qaurtz Cron Schedule в эту очередь.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Вы можете использовать эти аннотации для ваших методов:

   @Scheduled(cron = "0 */1 * ? * *") // for the first method
   @Scheduled(cron = "0 */5 * ? * *") //Second method
   @Scheduled(cron = "0 0 * ? * *")   // third method

, для получения дополнительной информации вы можете проверить пример ЗДЕСЬ

0 голосов
/ 05 ноября 2019

Вы можете пометить метод аннотацией @Scheduled, и Spring позаботится о создании таймеров и т. Д.

https://spring.io/guides/gs/scheduling-tasks/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...