EJB TimerService:安排任务每 90 秒运行一次

问题描述 投票:0回答:1

我知道可以使用每 N 秒运行一次的计时器服务来安排任务。此处描述了执行此操作的方法之一:https://docs.oracle.com/javaee/6/api/javax/ejb/ScheduleExpression.htmlIncrements

部分下

但问题是:对于秒和分属性,x 和 y 都必须在 [0,59] 范围内

但我想要的是安排一个任务每 90 秒运行一次。 EJB的TimerService可以吗?首先,我认为它可以与类似的东西一起使用: second=*/30 , 分钟=*/1 但事实并非如此。再次检查文档,这使得它更清楚:

分别每 N 秒、分钟或小时 在分钟、小时或天内

或者作为另一个例子:

示例:秒 =“30/10”(一分钟内每 10 秒一次,从第 30 秒开始) 这相当于:第二个=“30,40,50”

请注意,一旦超过该属性的最大值,匹配增量值集就会停止。它不会“翻滚”超过边界。

示例:(分钟 = "*/14", 小时 = "1,2")

这相当于:(分钟=“0,14,28,42,56”,小时=“1,2”)(每小时内每14分钟一次,对于凌晨1点和2点)

那么有什么办法可以达到90秒的间隔吗?

java jakarta-ee timer ejb scheduling
1个回答
0
投票

ScheduleExpression().minute( 1 ).second( 30 )

您可以在

jakarta.ejb.ScheduleExpression

 上设置多个字段。所以你要设置分钟字段和第二字段。

setter 方法返回一个

ScheduleExpression

 对象,以方便流畅的语法。

ScheduleExpression se = new ScheduleExpression().minute( 1 ).second( 30 ) ;
    
© www.soinside.com 2019 - 2024. All rights reserved.