2012-01-25 5 views
5

Как отключить все планировщики (@Schedule аннотированные) в проекте deploing на Glassfish 3.1
Возможно, есть некоторые записи конфигурации для этого?
У меня около 20 EJB с планировщиками в моем проекте, и если я хочу проверить/исправить небольшую вещь, я не хочу, чтобы все/некоторые таймеры запускались.Отключение всех графиков в Glassfish 3.1

+0

Не была добавлена ​​аннотация '@ Schedule' в EJB 3.1 (http://docs.oracle.com/javaee/6/api/javax/ejb/Schedule.html#persistent%28%29)? Вы используете EJB 3.1 или 3.0? –

+0

Я использую EJB 3.1 – alexblum

ответ

2

к сожалению, я не знаю, если есть некоторые элементы конфигурации, чтобы решить вашу проблему, но есть programatical способ сделать это, вызвав отменить() -метода на Таймер -Объекты предусмотренных TimerService.

Вот пример класса я просто поставил в проекты, когда я хочу проверить только маленькие вещи:

@Stateless 
public class ScheduleCancellation { 

    @Resource 
    private TimerService timerService; 

    @Schedule(second = "0", minute = "*", hour = "*") 
    public void cancelTimers() { 
    System.out.println("cancelTimers()"); 
    for (Timer timer : timerService.getTimers()) { 
     System.out.println("schedule gone!"); 
     timer.cancel(); 
    } 
    } 

    @Schedule(second = "*", minute = "*", hour = "*") 
    public void tick() { 
    System.out.println("tick"); 
    } 
} 

Надеется, что это помогает! :)

+0

Метод getTimer() возвращает только активные таймеры, связанные с этим компонентом. Может быть, возможно получить все таймеры в проекте и деактивировать их? – alexblum

2

Доступ к TimerService#getTimers() будет возвращать только таймеры для данного конкретного EJB. Нет стандартного способа доступа ко всем таймерам в контейнере (на самом деле, вот запрос расширения: http://java.net/jira/browse/EJB_SPEC-47).

Думаю, вам нужно использовать запатентованное решение Glassfish и возиться со своими внутренностями (если это возможно). Я бы спросил у меня GlassFish mailing list.

+0

Спасибо за ваше предложение. Я спрошу список рассылки. – alexblum

+0

Вот ответ от почтовой группы Glassfish: http://www.java.net/forum/topic/glassfish/glassfish/disabling-all-schedules-glassfish-31 – alexblum

Смежные вопросы