在我的Java EE 7應用程序中,我創建了一個每小時運行一次的持續計劃任務。我使用了@Schedule註釋。Java EE 7:將@Schedule日期設置爲persistent = true時
當這項工作被調用時,我想對從最近一小時到現在發生的事件執行一些操作。要獲得現在我使用「新日期()」。
此@Schedule具有默認的持久屬性爲「true」,這非常棒,因爲如果服務器在幾個小時內停止,我希望在重新啓動時執行這些任務。
問題是,如果服務器在5個小時內停止了,作業將會啓動5次,但是在所有的執行過程中將會執行「new Date()」,結果將會是相同的。
有沒有辦法檢索@Schedule作業應該發佈的日期?
我想,直接使用TimerService可以以某種方式實現,但我想從@Schedule註釋方法中使用。 – marcoslop 2014-09-19 15:49:43
當使用持久性定時器時,這種方法不起作用,就像服務器關閉並開始備份一樣,在JBoss中,它將運行所有錯過的定時器,並使用相同的下一個超時值。 – Iain 2015-02-08 22:07:23