Java EE6计划范围

G F*_*res 10 java cron ejb java-ee java-ee-6

我需要有一个从上午10点到下午5点45分每5分钟运行一次的时间表,如何使用@Schedule注释执行此操作?

到目前为止,我只限于@Schedule(小时= 10-18;分钟=*/5),但是他们坚持要到下午5:45而不是下午6点.

Jan*_*Jan 5

正如@Schedule和@Schedules文档中明确指出的那样,如果你运行两个时间表,你需要有两个@Schedule注释 - 即使你不喜欢这个事实.

由于仅在单个元素(小时,分钟,秒......)内具有范围的类似cron的限制,仅提供在*:50和*:55处跳过最后两次执行的附加信息是不可行的下午5点.

也就是说,你可能最终会得到像这样的东西

@Schedules({
   @Schedule(hour="10-16" minute="*/5"),
   @Schedule(hour="17" minute="0,5,10,15,20,25,30,35,40,45")
})
Run Code Online (Sandbox Code Playgroud)

当您最终以这种方式将调度信息输入到您的源代码中时(即使它是以注释的形式),您也可以每五分钟运行一次,如果在下午5:49之后调用,则立即从该方法返回