Стратегии для обработки повторяющихся фоновых задач в веб-приложении Java? - PullRequest
1 голос
/ 20 сентября 2011

Я создаю персональное веб-приложение с использованием технологий Java EE 6 (контейнер представляет собой сервер приложений, Jboss AS 7).Я начинаю с нуля, чтобы создавать повторяющиеся фоновые задачи, я определил два возможных сценария:

  • Запланированные задачи (например, отправка массовых писем каждую ночь в воскресенье)
  • Запуск задач на основе сетисобытие (например, запуск некоторых длинных фоновых обновлений из веб-действия)

Чего я хочу избежать (я не знаю, возможно ли это), так это разбросать некоторые фоновые задачи по моей платформе (некоторыеиз них с использованием cron , другие с использованием TimerTask , db jobs и т. д.) становятся сложными в обслуживании.

Какие существуют разные подходык обработке повторяющихся фоновых задач в веб-приложении Java с учетом двух предыдущих требований?

Относительно:

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

С EE6 вы можете избавиться от Кварца практически во всех ситуациях, используя TimerService с аннотациями @Timeout.

И вам не нужно писать строку XML, чтобы она заработала.

Хороший пример есть в книге EE Night Hacks , также доступной как источник здесь .

Вы можете добавить метод Timeout к компоненту, обрабатывающему ваши триггерные веб-события. Таким образом, они могут быть сохранены в одном месте. Вы также можете изменить настройки таймера с помощью событий запуска.

1 голос
/ 20 сентября 2011

Я бы еще посмотрел на Кварц тоже.Я не могу комментировать TimerService с EE6 как замену, поскольку я не использовал его, но я нашел Quartz весьма полезным.

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

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