Как использовать Кварц с EJB3? - PullRequest
1 голос
/ 01 декабря 2009

Я хочу иметь возможность:

  • определяет различные задания и триггеры.
  • изменить даты истечения срока и интервалы по требованию
  • приостановить или отменить исполнение (триггер)

задания будут ejbs или call ejbs, и я бы хотел управлять всем с веб-сайта (пользователь должен будет определить исполнение)

Итак, я посмотрел на службу таймера, таймеробъекты, таймер и ручку таймера. Но я думаю, что он не может удовлетворить все мои потребности

Кварц, с другой стороны, позволяет мне делать все, что я хочу, но я не имею ни малейшего понятия о том, как интегрировать это в мой jboss. Я читал, что кварц использует свой собственный пул потоков, и я не знаю, как справиться со всем этим.

Я использую Jboss Seam в своем проекте, но интеграция шов / кварц очень ограничена (или документация) и не на 100% безопасна (см. На их форуме: Задачи «выполнить навсегда» заканчиваются через несколько недель )

Если кому-то удастся интегрировать хороший планировщик в свой сервер приложений (jboss - плюс) и сможет дать мне указания, советы или даже фрагменты кода, я был бы рад.

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 01 декабря 2009

Хорошо, извините, я нашел в источниках Jboss Seam именно то, что мне было нужно: QuartzDispatcher для создания QuartzTriggerHandle , который запускает событие шва в указанное время и дату и может быть вручную приостановлен, восстановлен и остановлен. Я использую @observer для метода, который хотел выполнить.

Все просто и работает до сих пор.

1 голос
/ 01 декабря 2009

Отличная новость! JBoss уже имеет встроенный планировщик.

Поскольку спецификация EJB 2.0 включала в себя запуск сеансовых компонентов без сохранения состояния и MDB с запланированными интервалами, все серверы приложений уже включили эту возможность в течение некоторого времени.

Вот пример настройки JBoss для запуска класса с использованием встроенного планировщика:

http://www.jboss.org/community/wiki/Scheduler

Лучшая часть реализации JBoss состоит в том, что она основана на спецификации MBean, что означает, что вы можете создавать / обновлять / удалять запланированные задачи во время выполнения.

1 голос
/ 01 декабря 2009

У меня есть некоторый опыт интеграции Quartz в сервер приложений Weblogic (без опыта jboss, извините). Quartz имеет встроенный прослушиватель class , который будет вызываться при запуске сервера (согласно спецификациям J2EE), который автоматически настраивает планировщик Quartz. Затем в другом классе запуска вы можете получить этот планировщик, добавить задания и начать обслуживание этих заданий.

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

Что касается определения рабочих мест, вы создаете свои рабочие классы и оттуда вызываете своих ejbs. Это довольно просто.

Для вашего удовольствия от чтения:

Вся документация по кварцу

Кварц JavaDoc

Поваренная книга с большим количеством фрагментов кода

Надеюсь, этого достаточно, чтобы начать!

0 голосов
/ 01 декабря 2009

Как отмечает Poindexter, документация Quartz имеет хорошие отправные точки: Учебное пособие по разработке с кварцем , Примеры использования , Кулинарная книга (Quick How-Tos в виде примеров кода) и т. Д.

Статья What Is Quartz действительно хороша (даже если она немного устарела).

Для интеграции с JBoss, возможно, взгляните на Как настроить службу Quartz в JBoss Wiki.

...