Какую структуру использовать для расширенного планирования заданий в Java?

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

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

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

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

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

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

5
задан Tomasz Nurkiewicz 19 December 2011 в 11:55
поделиться