EJB TimerService 跳过本周星期日

问题描述

我正在旧的 JBoss 6.1.0.Final AS 中创建一个 EJB3 日历计时器,它应该在每个星期日的 02:00 触发。但是,当我调用 Timer.getNextTimeout() 时,它总是跳过当前星期的星期天。似乎它只跳过星期天,如果我将它设置为在星期六或星期一开火,它会返回我所期望的。

我使用以下代码片段创建了计时器。

ScheduleExpression schedule = new ScheduleExpression();
schedule.dayOfWeek("Sun");
schedule.hour(2);
TimerConfig tc = new TimerConfig();
tc.setPersistent(false);
mTimer = mTimerService.createCalendarTimer(schedule,tc);

今天(2021-05-03)运行我的代码调用 mTimer.getNextTimeout() 时有以下结果:

初始执行时间:2021 年 5 月 16 日星期日 02:00:00 CEST

运行相同的代码,但更改 dayOfWeek("Sat") 会导致:

初始执行时间:Sat May 08 02:00:00 CEST 2021

我还尝试将 0 和 7 作为 dayOfWeek 的参数。结果一样。

Jboss 在 Java 8 上运行。我还应该补充一点,这个 JBoss 同时运行 EJB2 和 EJB3,如果这会以任何方式影响它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)