詳解Spring Boot中使用@Scheduled創(chuàng)建定時(shí)任務(wù)
我們在編寫Spring Boot應(yīng)用中經(jīng)常會遇到這樣的場景,比如:我需要定時(shí)地發(fā)送一些短信、郵件之類的操作,也可能會定時(shí)地檢查和監(jiān)控一些標(biāo)志、參數(shù)等。
創(chuàng)建定時(shí)任務(wù)
在Spring Boot中編寫定時(shí)任務(wù)是非常簡單的事,下面通過實(shí)例介紹如何在Spring Boot中創(chuàng)建定時(shí)任務(wù),實(shí)現(xiàn)每過5秒輸出一下當(dāng)前時(shí)間。
在Spring Boot的主類中加入@EnableScheduling注解,啟用定時(shí)任務(wù)的配置
@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)在時(shí)間:" + sdf.format(new Date()));
}
}
創(chuàng)建定時(shí)任務(wù)實(shí)現(xiàn)類
運(yùn)行程序,控制臺中可以看到類似如下輸出,定時(shí)任務(wù)開始正常運(yùn)作了。
2016-05-15 10:40:04.073 INFO 1688 --- [ main] : Started Application in 1.433 seconds (JVM running for 1.967)
現(xiàn)在時(shí)間:10:40:09
現(xiàn)在時(shí)間:10:40:14
現(xiàn)在時(shí)間:10:40:19
現(xiàn)在時(shí)間:10:40:24
現(xiàn)在時(shí)間:10:40:29522
現(xiàn)在時(shí)間:10:40:34
關(guān)于上述的簡單入門示例也可以參見官方的Scheduling Tasks
@Scheduled詳解
在上面的入門例子中,使用了@Scheduled(fixedRate = 5000) 注解來定義每過5秒執(zhí)行的任務(wù),對于@Scheduled的使用可以總結(jié)如下幾種方式:
- @Scheduled(fixedRate = 5000) :上一次開始執(zhí)行時(shí)間點(diǎn)之后5秒再執(zhí)行
- @Scheduled(fixedDelay = 5000) :上一次執(zhí)行完畢時(shí)間點(diǎn)之后5秒再執(zhí)行
- @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延遲1秒后執(zhí)行,之后按fixedRate的規(guī)則每5秒執(zhí)行一次
- @Scheduled(cron="*/5 * * * * *") :通過cron表達(dá)式定義規(guī)則
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- springboot定時(shí)任務(wù)@Scheduled執(zhí)行多次的問題
- SpringBoot執(zhí)行定時(shí)任務(wù)@Scheduled的方法
- Spring boot如何通過@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)及多線程配置
- spring-boot通過@Scheduled配置定時(shí)任務(wù)及定時(shí)任務(wù)@Scheduled注解的方法
- Spring Boot利用@Async異步調(diào)用:ThreadPoolTaskScheduler線程池的優(yōu)雅關(guān)閉詳解
- spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實(shí)現(xiàn)定時(shí)任務(wù)
相關(guān)文章
Java8新特性之接口中的默認(rèn)方法和靜態(tài)方法詳解
今天帶大家學(xué)習(xí)的是Java8新特性的相關(guān)知識,文章圍繞著Java接口中的默認(rèn)方法和靜態(tài)方法展開,文中有非常詳細(xì)的的代碼示例,需要的朋友可以參考下2021-06-06
SpringBoot基于數(shù)據(jù)庫的定時(shí)任務(wù)統(tǒng)一管理的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot基于數(shù)據(jù)庫的定時(shí)任務(wù)統(tǒng)一管理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例
這篇文章主要介紹了Java編程實(shí)現(xiàn)從尾到頭打印鏈表代碼實(shí)例,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10
Javaweb實(shí)戰(zhàn)之實(shí)現(xiàn)蛋糕訂購系統(tǒng)
隨著網(wǎng)絡(luò)的普及與發(fā)展,網(wǎng)上購物逐漸成為一種主流消費(fèi)的方式。這篇文章主要介紹了通過JavaWeb制作一個(gè)線上蛋糕訂購系統(tǒng),文中示例代碼講解詳細(xì),需要的朋友可以參考一下2021-12-12
Spring boot 整合CXF開發(fā)web service示例
這篇文章主要介紹了Spring boot 整合CXF開發(fā)web service示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05

