您好,登錄后才能下訂單哦!
小編這次要給大家分享的是SpringBoot如何執行定時任務@Scheduled,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
在做項目時,需要一個定時任務來接收數據存入數據庫,后端再寫一個接口來提供該該數據的最新的那一條。
數據保持最新:設計字段sign的值(0,1)來設定是否最新
定時任務插入數據:首先進行更新,將所有為1即新數據設置過期,然后插入新數據,設置sign為1。這兩個操作是原子操作。通過添加事務來進行控制。
Java 定時任務的幾種實現方式
Spring 提供的一個注解: @Schedule,開發簡單,使用比較方便,也是本文介紹的一種方式
Spring 自身提供了對定時任務的支持,本文將介紹 Spring Boot 中 @Scheduled 定時器的使用。
創建定時任務
首先,在項目啟動類上添加@EnableScheduling
注解,開啟對定時任務的支持
@SpringBootApplication @EnableScheduling public class ScheduledApplication { public static void main(String[] args) { SpringApplication.run(ScheduledApplication.class, args); } }
其中 @EnableScheduling
注解的作用是發現注解@Scheduled
的任務并后臺執行。
其次,編寫定時任務類和方法,定時任務類通過Spring IOC 加載
,使用@Component
注解,定時方法使用@Scheduled
注解。
@Component public class ScheduledTask { @Scheduled(fixedRate = 3000) public void scheduledTask() { System.out.println("任務執行時間:" + LocalDateTime.now()); } }
fixedRate 是 long 類型,表示任務執行的間隔毫秒數,以上代碼中的定時任務每 3 秒執行一次。
@Scheduled詳解
在上面的入門例子中,使用了@Scheduled(fixedRate = 3000) 注解來定義每過 3 秒執行的任務,對于 @Scheduled 的使用可以總結如下幾種方式:
其中,常用的cron表達式有:
看完這篇關于SpringBoot如何執行定時任務@Scheduled的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。