我有一个使用 TimerService 的应用程序,我正在创建一些计时器来运行特定任务。它工作正常。但是,我注意到超时有些延迟。我有一个超时“A”计划每 10 分钟运行一次,另一个“B”每 3 分钟运行一次。如果“A”需要5分钟才能运行,“B”只会在“A”结束后运行,导致延迟2分钟。这是一个问题,因为事情没有按预期准备好。我的问题是,是否有办法让 TimerService 同时运行。我正在使用的代码片段如下。我很感激任何帮助。
时间表创建:
// Every schedule extend from this class.
public abstract class Schedule {
@Resource
private TimerService timerService;
public void start() {
TimerConfig timerConfig = new TimerConfig();
timerConfig.setInfo(name);
timerConfig.setPersistent(false);
timerService
.createCalendarTimer(this.calendarSchedule, timerConfig);
}
}
计划实施:
@Named
@Stateless
public class MyScheduleEJB extends Schedule {
@Timeout
public void timeout(Timer timer) {
// do the work
}
}