【问题标题】:Java EE6 Schedule RangeJava EE6 计划范围
【发布时间】:2017-09-04 23:19:45
【问题描述】:

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

到目前为止,我仅限于 @Schedule(hour=10-18;minute=*/5),但他们坚持我应该在下午 5 点 45 分之前使用它,而不是下午 6 点。

【问题讨论】:

  • 创建两个时间表?一个用于17:45 -> 17:55,另一个用于其余

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


【解决方案1】:

正如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:49 之后调用,则立即从该方法返回

【讨论】:

    猜你喜欢
    • 2016-04-04
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多