Можно ли создать EJB, предназначенный для управления таймерами EJB 3.1? - PullRequest
0 голосов
/ 06 января 2012

Это может быть глупый вопрос, но можно ли выделить EJB для управления всеми таймерами для всего контейнера?Я не знаю, как это будет достигнуто, поскольку я не обладаю достаточным опытом работы с Java EE, но я думаю о том, как отдельные сессионные компоненты имеют доступ к этому компоненту таймера, а сессионные компоненты передают функциюуказатель вместе с метаданными для самой работы?На вершине bean-компонента timer можно было бы построить графический интерфейс или структуру управления, чтобы, по крайней мере, увидеть, какие задания выполняются и их текущее состояние?

В основном мне нужно / нужно иметь некоторыефункциональности Quartz (возможность останавливать, запускать, изменять задания) при использовании вместо этого таймеров EJB 3.1.Попытка выяснить, является ли это даже удаленной возможностью или нет.

Редактировать: Как уже отмечалось, суть проблемы заключается в том, что служба таймера не может получить все таймеры для всего контейнера.Моя идея состоит в том, чтобы создать все таймеры в специальном bean-компоненте timer, где можно управлять всеми таймерами.Проблема в том, что я понятия не имею, как это сделать или возможно ли это.Я играл с передачей указателей на функции (как можно ближе к ним в Java) к компоненту таймера вместе с параметрами синхронизации, но это кажется действительно грубым.

1 Ответ

0 голосов
/ 06 января 2012

Возможно, вы ищете javax.ejb.TimerService .Добавьте его в ваш bean-компонент:

@Resource
private SessionContext sessionContext;

Затем, например, вы можете получить итерацию по всем таймерам:

TimerService timerService = sessionContext.getTimerService();
for (Timer timer : timerService.getTimers()) {
    timer.cancel(); //etc.
}
...