EJB创建基于日历的计时器表达式

时间:2015-12-27 12:11:48

标签: timer ejb ejb-3.0

我需要创建3个计时器。

第一个计时器应每3天超时一次,但在下个月滚动。例如,如果我希望计时器每3天触发一次。因此,计时器应在第1,4,7,10,13,16,19,22,25,28个月的几天内超时。但是如果这个月是31天那么定时器将在下个月的第31天和第3天触发,如果这个月是30天它将在下个月的第1天触发,但是如果这个月只是28天那么它应在下个月的第3天触发。

第二个计时器应在星期日每3周一次。

第三个计时器将在月末每6个月触发一次。

我正在尝试使用基于日历的计时器(timerService.createCalendarTimer(schedule))但我找不到建立上述计时器的方法,因为x / y的间隔不适用于数月和数周。而且好几天它都不支持下个月滚动。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否检查了ScheduledExpression的使用情况?其他一些例子here

如果标准API无法满足您的需求,那么您可能需要考虑使用更具体的库,例如Quartz

希望有所帮助。