我创建了一个使用EJB 3.1 timee和schedulerd的调度程序,以便在工作日的22:30 pm执行。注释如下:
@Schedule(minute="30", hour="22", dayOfWeek="5–1")
但是我发现这个调度程序在启动wildfly应用程序服务器后立即执行,即使它不是预定的时间。
谢谢!
答案 0 :(得分:0)
我不知道重新启动服务器的具体情况,但是在例如服务器在22.20关闭并在22.35启动,然后容器必须在重启后为持久计时器触发回调方法。正如规范所述(18.4.3):
在中间时间内已过期的任何间隔持久定时器或基于调度的持久定时器必须在重新启动时至少调用一次相应的超时回调方法。
您使用持久性计时器,因此在计时器到期期间服务器重新启动可能是启动后立即执行回调的根本原因。