Java中的计时器管理

时间:2014-11-26 04:12:23

标签: java java-ee ejb-3.1 wildfly

我使用来自3个不同@Schedule类的@Singleton注释创建的自动定时器很少。它们在wildfly服务器上运行。如何监视计时器并确保计时器未停止执行。这些计时器每小时运行一次,我必须确保它们不会因任何问题而终止。 请指教。

1 个答案:

答案 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());
    }
}