我使用来自3个不同@Schedule
类的@Singleton
注释创建的自动定时器很少。它们在wildfly服务器上运行。如何监视计时器并确保计时器未停止执行。这些计时器每小时运行一次,我必须确保它们不会因任何问题而终止。
请指教。
答案 0 :(得分:0)
当您需要检查计时器是否还活着时,您可以向单身人士添加类似下面代码的内容并调用checkAlive()
方法:
@Resource
private TimerService timerService;
private int initialNumberOfTimers;
@PostConstruct
public void postCon() {
initialNumberOfTimers = timerService.getTimers().size();
System.out.println("Initial number of timers is: "+initialNumberOfTimers);
}
public void checkAlive() {
Collection<Timer> timers = timerService.getTimers();
if (timers.size() != initialNumberOfTimers) {
System.out.println("ALARM!!! Number of timers is: " + timers.size());
}
for (Timer timer : timers) {
System.out.println("Next timeout: " + timer.getNextTimeout().toString());
}
}