Я работаю над проектом JSF, используя безгражданные ejbs. У меня есть некоторые функции в некоторых фазах без состояния, которые мне нужно выполнять периодически (планирование). Я не хочу писать внешний ejb для планирования. Интересно, неплохо ли написать еще один элемент фаната ejb в качестве планировщика в том же веб-проекте, который вызывает вызов этих функций в других фазах без состояния, а затем разворачивает их вместе на моем сервере GlassFish.EJB stateless bean scheduling
1
A
ответ
0
Вы можете использовать java.util.Timer в @Startup @Singleton
2
Интересно, если это хорошо, чтобы написать еще один компонент EJB без гражданства в качестве планировщика в том же веб-проекта, которые делают вызов этих функций в другом фазах без гражданства, а затем развернуть их вместе на моем сервере из морской рыбы.
Это не должно быть проблемой.
@Schedule - это путь. Вот пример:
@Singleton
public class Task {
@EJB
private SomeOtherEJB otherEJB;
@Schedule(hour = "*/1")
public void doSomething() {
otherEJB.doSomething();
}
}
Этот метод обрабатывается один раз в час в каждый день недели.
Рекомендуется использовать @Singleton
, но вы также можете использовать @Stateless
.
+0
Спасибо! Я уже это сделал, и он работает. – cdaiga
Спасибо за ваш ответ, я уже знаю, как сделать планировщик, используя безстоящие ejbs. Я просто хочу знать, хороша ли моя идея! – cdaiga
Нет! Ужасно плохой совет. http://stackoverflow.com/questions/4691132/how-to-run-a-background-task-in-a-servlet-based-web-application – BalusC
Спасибо @BalusC! – cdaiga