【发布时间】:2008-12-30 10:15:46
【问题描述】:
例如如果我将计时器设置为每天午夜到期,如果一个“失火”(例如,由于服务器关闭而不会触发回调)会发生什么?我在文档中找不到。
有没有办法让这个计时器在服务器重启后立即触发回调?
PS:我知道 Quartz,我正在评估 EJB 计时器作为替代方案。
【问题讨论】:
标签: java jakarta-ee ejb-3.0 timer ejb
例如如果我将计时器设置为每天午夜到期,如果一个“失火”(例如,由于服务器关闭而不会触发回调)会发生什么?我在文档中找不到。
有没有办法让这个计时器在服务器重启后立即触发回调?
PS:我知道 Quartz,我正在评估 EJB 计时器作为替代方案。
【问题讨论】:
标签: java jakarta-ee ejb-3.0 timer ejb
您可以使用TimerHandle 使计时器持久化。 EJB 时间旨在避免容器崩溃。
请参阅此article,了解 EJB 时间与 Quartz 等其他调度程序系统之间的比较。
【讨论】:
根据经验,我可以告诉您,在 Glassfish 中,一旦服务器恢复正常,错过的计时器就会触发。如果您的服务器因两次或更多错过的超时而关闭,它只会触发一次,而不是每次错过的超时一次。然后它会回到您定期安排的计划。
【讨论】: