詳解Spring Boot中使用@Scheduled創(chuàng)建定時任務
我們在編寫Spring Boot應用中經(jīng)常會遇到這樣的場景,比如:我需要定時地發(fā)送一些短信、郵件之類的操作,也可能會定時地檢查和監(jiān)控一些標志、參數(shù)等。
創(chuàng)建定時任務
在Spring Boot中編寫定時任務是非常簡單的事,下面通過實例介紹如何在Spring Boot中創(chuàng)建定時任務,實現(xiàn)每過5秒輸出一下當前時間。
在Spring Boot的主類中加入@EnableScheduling注解,啟用定時任務的配置
@SpringBootApplication
@EnableScheduling
public class SpringbootScheduletaskApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootScheduletaskApplication.class, args);
}
}
@Component
public class ScheduledTasks {
private static final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
System.out.println("現(xiàn)在時間:" + sdf.format(new Date()));
}
}
創(chuàng)建定時任務實現(xiàn)類
運行程序,控制臺中可以看到類似如下輸出,定時任務開始正常運作了。
2016-05-15 10:40:04.073 INFO 1688 --- [ main] : Started Application in 1.433 seconds (JVM running for 1.967)
現(xiàn)在時間:10:40:09
現(xiàn)在時間:10:40:14
現(xiàn)在時間:10:40:19
現(xiàn)在時間:10:40:24
現(xiàn)在時間:10:40:29522
現(xiàn)在時間:10:40:34
關于上述的簡單入門示例也可以參見官方的Scheduling Tasks
@Scheduled詳解
在上面的入門例子中,使用了@Scheduled(fixedRate = 5000) 注解來定義每過5秒執(zhí)行的任務,對于@Scheduled的使用可以總結如下幾種方式:
- @Scheduled(fixedRate = 5000) :上一次開始執(zhí)行時間點之后5秒再執(zhí)行
- @Scheduled(fixedDelay = 5000) :上一次執(zhí)行完畢時間點之后5秒再執(zhí)行
- @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延遲1秒后執(zhí)行,之后按fixedRate的規(guī)則每5秒執(zhí)行一次
- @Scheduled(cron="*/5 * * * * *") :通過cron表達式定義規(guī)則
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
springboot源碼中this::selfInitialize怪異用法的含義解析
這篇文章主要介紹了springboot源碼中this::selfInitialize怪異用法的含義解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
使用Spring Data R2DBC +Postgres實現(xiàn)增刪改查功能
這篇文章主要介紹了使用Spring Data R2DBC +Postgres實現(xiàn)增刪改查功能,本文通過兩種方法給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
Springboot項目實現(xiàn)Mysql多數(shù)據(jù)源切換的完整實例
這篇文章主要給大家介紹了關于Springboot項目實現(xiàn)Mysql多數(shù)據(jù)源切換的完整實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Java實現(xiàn)國產(chǎn)加密算法SM4的示例詳解
這篇文章主要為大家詳細介紹了Java如何實現(xiàn)國產(chǎn)加密算法SM4(ECB和CBC兩種模式),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-01-01
Java設計模式之Template?Pattern模板模式詳解
這篇文章主要介紹了Java設計模式之Template?Pattern模板模式詳解,模板模式(Template?Pattern)行為型模式之一,抽象父類定義一個操作中的算法的骨架,而將一些步驟延遲到子類中,需要的朋友可以參考下2023-10-10

