Какие рамки использовать для расширенного планирования заданий в Java? - PullRequest
5 голосов
/ 08 декабря 2011

В моем приложении мне нужно периодически запускать фоновые задачи (что я легко могу сделать с помощью Quartz - т.е. планировать задание, которое будет выполняться в определенное время периодически).

Но я бы хотел иметь немного больше контроля. В частности мне нужно:

  1. чтобы система повторно запустила задачу, которая не была запущена в назначенное время (т. Е. Сервер не работал, и из-за этого задача не была запущена. В такой ситуации я хочу, чтобы «поздняя» задача выполнялась как можно скорее)
  2. было бы неплохо легко управлять задачами - то есть запускать задачу по требованию или видеть, когда заданная задача выполнялась в последний раз, или перепланировать задание для запуска в другое время

Мне кажется, что вышеупомянутых пунктов можно достичь с помощью Spring Batch Admin, но у меня пока нет большого опыта в этой области. Кроме того, я видел множество сообщений о том, что Spring Batch не является инструментом планирования, поэтому у меня возникают сомнения в том, какой инструмент для этой работы подходит.

Итак, мой вопрос: можно ли достичь вышеуказанного с помощью Spring Batch Admin? Или, может быть, достаточно Quartz, но для этого нужно настроить? Или может мне нужны оба? Или что-то еще?

Большое спасибо :) Питер

1 Ответ

5 голосов
/ 08 декабря 2011

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

Эта функция в Кварц называется Инструкция по пропускам зажигания и делает именно то, что вам нужно, но гораздо более гибкая. Все, что вам нужно, это определить JDBCJobStore.

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

Вы можете использовать Quartz JMX , чтобы получить доступ к различной информации (например, предыдущее и следующее время выполнения) или напрямую запросить таблицы базы данных Quartz. Существуют также бесплатные и коммерческие инструменты управления Basex на вышеупомянутом входе. Я полагаю, что вы также можете вручную запускать там задания.

Пружинная партия может быть интегрирована с кварцем, но не заменять его.

...