2017-04-10 60 views
10

我需要有一个从上午10点到下午5点45分每5分钟运行的计划,我该如何使用@Schedule注释执行此操作?Java EE6计划范围

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

+0

创建两个时间表?一个用于'17:45 - > 17:55',另一个用于休息 –

回答

6

正如documentation for @Schedule and @Schedules明确指出,需要有两个注解@Schedule如果您运行两个时间表 - 即使你不喜欢这个事实。

由于仅在单个元素(小时,分钟,秒......)内具有范围的cron-like限制,因此在*: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:49之后调用,则每五分钟运行一次并立即返回该方法