Quartz или ScheduledExecutorService в веб-приложении на Java - PullRequest
14 голосов
/ 18 января 2011

Для приложения Java для системного мониторинга, которое в настоящее время запускается из командной строки и использует ScheduledExecutorService, я хотел бы написать простую версию веб-приложения для запуска в контейнере сервлета как Apache Tomcat или Eclipse Jetty .

Я читал о Кварце как одном из популярных планировщиков заданий для веб-приложений. Было бы лучше (возможно, из-за лучшей интеграции контейнера сервлетов) портировать это приложение с ScheduledExecutorService на Quartz?

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

Ответы [ 3 ]

10 голосов
/ 18 января 2011

Это зависит от того, для чего вы его используете.

Кварц полезен для запрограммированного времени, например, каждый час в час.

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

8 голосов
/ 18 января 2011

ScheduledExecutorService работает на более низком уровне, и вам придется самостоятельно реализовать все средства мониторинга / обслуживания для планирования.

Кварц имеет тонны средств , таких как постоянство работы, транзакции, кластеризация и т. Д..

2 голосов
/ 14 марта 2018

Решение Executor Java позволяет вам:

  1. немедленно запустите задачу
  2. запускать задачу после начальной задержки (и при необходимости повторно запускать задачу после последующих циклов задержки).

Но Quartz дает вам невероятную гибкость в отношении того, когда и как часто выполнять задачу / задание. Например, одно расписание в рабочую неделю с понедельника по пятницу и что-то другое (или не совсем) в выходные дни. Или в последний день месяца, и вам не нужно выяснять, является ли последний день данного месяца 28-го, 29-го, 30-го или 31-го. Вот еще несколько примеров гибкости, которую обеспечивает планирование в стиле cron: http://www.quartz -scheduler.org / Documentation / quartz-2.x / tutorials / crontrigger.html # examples

Использовать библиотеку Java проще, но для тех, кто хочет начать работу с чистым примером кода на базе кода Quartz, я собрал этот шаблон для бесплатного скачивания - https://github.com/javateer/quartz-example

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