我想知道Ejb计时器服务如何计算超时?是否需要系统时间并取决于它计算超时时间还是内部有机制来运行自己的计时器。如果它使用它自己的机制,它是什么,我们可以做一些设置,以便它可以根据系统时间计算超时时间?ejb 3.1计时器服务如何计算超时时间?
我已经搜索了这些信息,并没有发现任何相关的信息。我目前在我的代码中使用了TimerService并以编程的方式创建了定时器。但是当我改变系统时间时,定时器按照这个方式工作。计时器创建后的步进时间后发生超时。
如果我不更改系统时间,则调度工作完全正常..
即使ü可以重定向我任何此类信息,这将是GR8帮助。
任何帮助将真正appriciated。
的代码是这样
ScheduleExpression everyDayAtTenTwenty = new ScheduleExpression();
TimerConfig timerConfig = new TimerConfig();
timerConfig.setPersistent(false);
timerConfig.setInfo("testTask");
everyDayAtTenTwenty.start(date).year("2011,2012").month("Jun").dayOfMonth("19").dayOfWeek("*").hour("16-23").minute("30"); timerConfig.setInfo("testTask : ");
timerKeeperBeanLocal.scheduleTimer(everyDayAtTenTwenty, timerConfig);
timerKeeperBeanLocal implementation
@Resource
private TimerService timerService;
Timer timer = this.timerService.createCalendarTimer(scheduleExpression, timerConfig);
现在在这里我要调度执行19 2011年6月和2012年现在目前的日期是2011年6月19所以今天就执行,并在同一天我将系统日期与适当的时间一起更改为2011年6月29日。在这种情况下,调度程序不起作用。同样的情况可以在几个小时内进行测试。 我是否需要按照系统时间去做其他事情?
在此先感谢。
我的问题是,一旦定时器被创建,并且在那之后如果系统日期时间被改变,那么同样的情况也反映在已经创建的定时器中。 感谢您的答复:) – khushi
是的,更改系统日期将影响当前创建的计时器。 – dcernahoschi
在我的情况下,它不是以这种方式使用EJB 3.1 Timer Service – khushi