Выполнить таймер Java EE 6 сейчас - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть таймер Java EE 6, который я планирую с помощью ScheduleExpression, но я также хочу иметь возможность запускать его «сейчас», например, при нажатии кнопки.Как я могу добиться этого?

Пример того, как я создаю таймер:

ScheduleExpression schedExp = new ScheduleExpression();
    schedExp.start(jobInfo.getStartDate());
    schedExp.end(jobInfo.getEndDate());
    schedExp.second(jobInfo.getSecond());
    schedExp.minute(jobInfo.getMinute());
    schedExp.hour(jobInfo.getHour());
    schedExp.dayOfMonth(jobInfo.getDayOfMonth());
    schedExp.month(jobInfo.getMonth());
    schedExp.year(jobInfo.getYear());
    schedExp.dayOfWeek(jobInfo.getDayOfWeek());

TimerConfig timerConf = new TimerConfig(jobInfo, false);
Timer newTimer = timerService.createCalendarTimer(schedExp, timerConf);

Теперь я хотел бы сделать что-то вроде этого:

timerService.runNow(timer);

К сожалению, естьне является методом runNow.

1 Ответ

0 голосов
/ 05 сентября 2011

Я не думаю, что это возможно, но я почему-то сомневаюсь, что это необходимо, если вы все сделаете правильно.

Скажем, вы можете реализовать свой метод Timeout следующим образом:

@Timeout
public void doTimeout(Timer timer) {
    logic.doMyTimeout();
}

Тогда, что вам нужно сделать, когда нажата соответствующая кнопка, просто позвоните logic.doMyTimeout();.

Есть ли причина не использовать этот подход?

...