Динамическое планирование заданий с помощью Quartz или любого другого Java-API - PullRequest
0 голосов
/ 30 августа 2018

У меня есть интерфейс пользовательского интерфейса, где пользователь может определить имя задания, интервал, активный / неактивный и т. Д.

Как мы можем достичь этого с помощью Quartz Scheduler или любого Java / Spring API?

Ex. Предположим, что любое кварцевое задание запущено, а интервал установлен равным 10 минутам, поэтому в идеальном случае задание будет выполняться с интервалом в следующие 10 минут. Но каждый раз, когда запускается работа, мы хотим получить последний интервал из базы данных и запланировать его.

10: 00 Работа выполняется, а в базе данных интервал устанавливается равным 10 мин. 10:10 Задание выполняется, и в базе данных интервал установлен на 20 минут

Так что в следующий раз задание должно выполняться в 10:30

1 Ответ

0 голосов
/ 30 августа 2018

Если вы используете Quartz, вы можете реализовать пользовательский Trigger . Ваша реализация будет искать значение в базе данных и возвращать, когда в следующий раз произойдет запуск в getFireTimeAfter.

Другой вариант - использовать API-интерфейсы Spring Scheduling и реализовать интерфейс Trigger . То же самое и здесь, метод nextExecutionTime решит, когда должен произойти следующий запуск.

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

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