Моя установка: NetBeans 8.0.2 JEE7 с EJB3.2, работающим на Glassfish 4.2
Привет, я запустил службу таймера
@Schedule(second = "*/10", minute = "*", hour = "*", persistent = false)
public void chronJobSySODate() {
System.out.println("Timer event: " + new Date());
}
Я вызвал этот метод в другом Bean-компоненте с аннотацией @PostConstruct.
@PostConstruct
public void startChronJob(){
chronJobBean.chronJobSySODate();
}
Теперь, несмотря на это, хотя из-за persistent = false
таймер исчезнет после убийства Glassfish, он все еще существует даже в другом проекте NetBeans, работающем на том же сервере Glassfish.
Я уже просмотрел этот поток StackOverflow Есть ли способ остановить/перезапустить автоматический таймер ejb 3.1 во время выполнения?
Так что я попытался
import javax.annotation.Resource;
import javax.ejb.TimerService;
@Resource
TimerService timerService;
public void cancelAllTimers() {
System.out.println("cancelAllTimers");
for (Timer timer : timerService.getTimers()) {
System.out.println("Canceling Timer: info: " + timer.getInfo());
timer.cancel();
}
}
Но что касается переменной timerService, таймеров нет (но таймер пока работает.