2012-01-25 225 views
0

我在我的Web服務器中創建了一個機制,計劃任務每​​15分鐘執行一次,並在該時間範圍內發生任何活動時通知用戶。它的工作如下:服務器重新啓動後Spring @Scheduled

  1. 註釋帶@Scheduled和時間表,以每15分鐘
  2. 任務運行時運行,颳去數據庫15分鐘的當前時間內的任何變化

一對夫婦的問題,我可以看到:

  • 如果我要重新啓動服務器,它的下跌超過15分鐘,我需要看超過15分鐘,這樣沒有活動錯過了回長。
  • 我運行多個tomcat服務器,只有其中一個需要執行任務。否則,重複的電子郵件將發送給用戶。

有沒有人處理過這個?我認爲這應該是Web服務器外部的任務......這將解決發送重複電子郵件的問題,但它不會解決服務器反彈問題。

任何想法如何解決將不勝感激!

回答

1

我會做以下步驟來進行調度:

  1. 在應用程序啓動的查詢從數據庫任務(只有那些沒有髒標誌設置爲false),並安排它。
  2. 在計劃任務的每次運行把髒標誌表明該任務已經運行

因爲我將只獲取其標記爲髒的任務,即使在服務器不應該發生的多封電子郵件的問題啓動。