在 Java EE TimerService 中启动后更改计时器
Changing timer after startup in Java EE TimerService
在这段代码中,我在启动时使用 TimerService
来启动一个每四秒 运行 的任务。启动后需要改频怎么办?
@Startup
@Singleton
public class ProgrammaticScheduler {
@Resource
TimerService timerService;
@PostConstruct
public void initialize() {
timerService.createTimer(0, 4000, "Every four seconds timer");
}
@Timeout
public void programmaticTimeout(Timer timer) {
System.out.println("timeout triggered");
}
}
使用 Java EE 已经有一段时间了,但我想唯一的选择是取消原来的计时器并创建一个新的。所以在你的 ProgrammaticScheduler
:
中添加这样的东西
private Timer timerToChange;
@PostConstruct
public void initialize() {
timerToChange = timerService.createTimer(0, 4000, "Every four seconds timer");
}
public void changeTimer(**NEW_PARAMS**) {
timerToChange.cancel();
timerToChange = timerService.createTimer(**NEW_PARAMS**);
}
在这段代码中,我在启动时使用 TimerService
来启动一个每四秒 运行 的任务。启动后需要改频怎么办?
@Startup
@Singleton
public class ProgrammaticScheduler {
@Resource
TimerService timerService;
@PostConstruct
public void initialize() {
timerService.createTimer(0, 4000, "Every four seconds timer");
}
@Timeout
public void programmaticTimeout(Timer timer) {
System.out.println("timeout triggered");
}
}
使用 Java EE 已经有一段时间了,但我想唯一的选择是取消原来的计时器并创建一个新的。所以在你的 ProgrammaticScheduler
:
private Timer timerToChange;
@PostConstruct
public void initialize() {
timerToChange = timerService.createTimer(0, 4000, "Every four seconds timer");
}
public void changeTimer(**NEW_PARAMS**) {
timerToChange.cancel();
timerToChange = timerService.createTimer(**NEW_PARAMS**);
}