2017-03-24 64 views

回答

0
  1. 收集用戶輸入和存儲它在DB作爲日期/時間,例如,我們可以調用該值作爲NEXT_SEND_TIME

2. 標註郵件發送方法與@Scheduled如下,這種方法會爲每5秒(5000毫秒)稱爲自動(通過彈簧)。

3.獲取當前時間比較它與NEXT_SEND_TIME。

4.如果當前時間大於 NEXT_SEND_TIME,則觸發該用戶的電子郵件。

@Scheduled(fixedDelay=5000) 
public void sendMail() { 
    // do step 3 & 4 here 
} 
+1

感謝您的答覆,我在做類似的東西在一分鐘,但問題是它通過每5秒經常檢查浪費CPU週期(也許一個電子郵件不會被安排在另外3發送小時,但這將每隔5秒檢查一次)無論如何, 這也是不準確的,因爲電子郵件永遠不會在指定的時間內完全發送(將會有一個~5秒的窗口) – stewartie4

+0

這就是你正在尋找的--Spring Scheduler change動態的cron表達式。 http://stackoverflow.com/questions/20546403/spring-scheduler-change-cron-expression-dynamically –

相關問題