たとえば、タイマーを毎日午前 0 時に満了するように設定した場合、1 つの「失火」(たとえば、サーバーがダウンしているためにコールバックがトリガーされない) が発生するとどうなりますか? ドキュメントでそれを見つけることができません。
サーバーが再起動するとすぐにこのタイマーがコールバックをトリガーする方法はありますか?
PS: Quartz については知っています。代わりに EJB タイマーを評価しています。
たとえば、タイマーを毎日午前 0 時に満了するように設定した場合、1 つの「失火」(たとえば、サーバーがダウンしているためにコールバックがトリガーされない) が発生するとどうなりますか? ドキュメントでそれを見つけることができません。
サーバーが再起動するとすぐにこのタイマーがコールバックをトリガーする方法はありますか?
PS: Quartz については知っています。代わりに EJB タイマーを評価しています。
TimerHandleを使用して、タイマーを永続的にすることができます。EJB 時間は、コンテナーのクラッシュに耐えられるように設計されています。
EJB 時間と Quartz などの他のスケジューラー システムとの比較については、この記事を参照してください。
経験から言うと、Glassfish では、サーバーがバックアップされるとすぐにタイマーが起動しなくなります。サーバーが 2 回以上タイムアウトを逃したためにダウンしている場合、タイムアウトを逃したたびに 1 回ではなく、1 回だけ起動します。その後、定期的にスケジュールされたプログラムに戻ります。