springboot裏作一個定時任務特別的簡單spring
1:在啓動文件裏開啓任務 @EnableSchedulingspringboot
2:在方法上 設置定時時間@Scheduled(cron = "0/10 * * * * ?")併發
3:這樣就會每十秒執行一次異步
默認的是單線程,就是一個任務沒有執行完畢,下一個任務不會開始。線程
舉個栗子:項目啓動後等待10秒,定時任務開始執行,而後第二個10秒,而後第三個10秒。。。blog
若是第一個10秒 任務裏的邏輯沒有執行完畢,那麼第二次進任務就是下一個定時任務時間,如:第一個定時任務執行15秒,那麼定時任務
第二次進任務是在第30秒方法
4:也能夠加上異步 @Asyncim
這樣的定時任務,每到一個執行間隔就會執行任務,不會去管上一次任務是否已經執行完畢d3
特別注意:根據業務邏輯須要 去判斷要不要添加異步。在咱們項目中,定時去更新庫存信息,由於併發了 致使庫存屢次增減,
即便庫存表有樂觀鎖,也沒能避免這個錯誤。