У меня есть приложение, работающее с TimerService, я создаю несколько таймеров для выполнения определенных задач. Он работает нормально. Однако я замечаю некоторую задержку в тайм-аутах. У меня есть тайм-аут «A», который должен запускаться каждые 10 минут, а другой «B» - каждые 3 минуты. Если «А» выполняется 5 минут, «Б» запустится только после окончания «А», что приведет к задержке на 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
}
}