2
有沒有人有任何有關彈簧任務調度的經驗? 我知道你可以安排固定的時間段或間隔使用註釋 https://spring.io/guides/gs/scheduling-tasks/ 但我想知道是否有人知道如何在運行時使用動態用戶輸入做到這一點。 例如,一個用戶安排一封電子郵件準確地在5:02 pm發送,有沒有辦法動態地添加一個新的任務?在運行時的特定時間的彈簧調度任務
有沒有人有任何有關彈簧任務調度的經驗? 我知道你可以安排固定的時間段或間隔使用註釋 https://spring.io/guides/gs/scheduling-tasks/ 但我想知道是否有人知道如何在運行時使用動態用戶輸入做到這一點。 例如,一個用戶安排一封電子郵件準確地在5:02 pm發送,有沒有辦法動態地添加一個新的任務?在運行時的特定時間的彈簧調度任務
2. 標註郵件發送方法與@Scheduled如下,這種方法會爲每5秒(5000毫秒)稱爲自動(通過彈簧)。
3.獲取當前時間和比較它與NEXT_SEND_TIME。
4.如果當前時間大於 NEXT_SEND_TIME,則觸發該用戶的電子郵件。
@Scheduled(fixedDelay=5000)
public void sendMail() {
// do step 3 & 4 here
}
感謝您的答覆,我在做類似的東西在一分鐘,但問題是它通過每5秒經常檢查浪費CPU週期(也許一個電子郵件不會被安排在另外3發送小時,但這將每隔5秒檢查一次)無論如何, 這也是不準確的,因爲電子郵件永遠不會在指定的時間內完全發送(將會有一個~5秒的窗口) – stewartie4
這就是你正在尋找的--Spring Scheduler change動態的cron表達式。 http://stackoverflow.com/questions/20546403/spring-scheduler-change-cron-expression-dynamically –