我有一个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方法。
答案 0 :(得分:0)
我不认为这是可能的,但我怀疑如果你正确地做其余的事情就需要它。
假设您可以像这样实现Timeout方法:
@Timeout
public void doTimeout(Timer timer) {
logic.doMyTimeout();
}
然后单击相应按钮时需要执行的操作也只是调用logic.doMyTimeout();
。
有没有理由不使用这种方法?