2016-01-15 3 views
1

Я работаю над проектом JSF, используя безгражданные ejbs. У меня есть некоторые функции в некоторых фазах без состояния, которые мне нужно выполнять периодически (планирование). Я не хочу писать внешний ejb для планирования. Интересно, неплохо ли написать еще один элемент фаната ejb в качестве планировщика в том же веб-проекте, который вызывает вызов этих функций в других фазах без состояния, а затем разворачивает их вместе на моем сервере GlassFish.EJB stateless bean scheduling

ответ

0

Вы можете использовать java.util.Timer в @Startup @Singleton

+0

Спасибо за ваш ответ, я уже знаю, как сделать планировщик, используя безстоящие ejbs. Я просто хочу знать, хороша ли моя идея! – cdaiga

+0

Нет! Ужасно плохой совет. http://stackoverflow.com/questions/4691132/how-to-run-a-background-task-in-a-servlet-based-web-application – BalusC

+0

Спасибо @BalusC! – cdaiga

2

Интересно, если это хорошо, чтобы написать еще один компонент EJB без гражданства в качестве планировщика в том же веб-проекта, которые делают вызов этих функций в другом фазах без гражданства, а затем развернуть их вместе на моем сервере из морской рыбы.

Это не должно быть проблемой.

@Schedule - это путь. Вот пример:

@Singleton 
public class Task { 

    @EJB 
    private SomeOtherEJB otherEJB; 

    @Schedule(hour = "*/1") 
    public void doSomething() { 

     otherEJB.doSomething(); 
    } 
} 

Этот метод обрабатывается один раз в час в каждый день недели.

Рекомендуется использовать @Singleton, но вы также можете использовать @Stateless.

+0

Спасибо! Я уже это сделал, и он работает. – cdaiga