Java EE6 Schedule Range

时间:2017-04-10 02:45:42

标签: java java-ee cron ejb java-ee-6

I'm required to have a schedule that runs every 5 minutes from 10 am to 5:45pm, how do I do this with the @Schedule annotation?

So far, I'm limited to the @Schedule(hour=10-18;minute=*/5), but they insist I should have it until 5:45pm not 6pm.

1 个答案:

答案 0 :(得分:5)

正如documentation for @Schedule and @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")
})

当您最终以这种方式向您的源代码发送日程信息时(即使它是以注释的形式),您也可以每隔五分钟运行一次,如果在5之后调用,则立即从该方法返回: 49pm