摘要:構(gòu)建工程創(chuàng)建一個(gè)工程,在它的程序入口加上開(kāi)啟調(diào)度任務(wù)。創(chuàng)建定時(shí)任務(wù)創(chuàng)建一個(gè)定時(shí)任務(wù),每過(guò)在控制臺(tái)打印當(dāng)前時(shí)間。通過(guò)在方法上加注解,表明該方法是一個(gè)調(diào)度任務(wù)。
這篇文章將介紹怎么通過(guò)spring去做調(diào)度任務(wù)。
構(gòu)建工程創(chuàng)建一個(gè)Springboot工程,在它的程序入口加上@EnableScheduling,開(kāi)啟調(diào)度任務(wù)。
@SpringBootApplication @EnableScheduling public class SpringbootSchedulingTasksApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSchedulingTasksApplication.class, args); } }創(chuàng)建定時(shí)任務(wù)
創(chuàng)建一個(gè)定時(shí)任務(wù),每過(guò)5s在控制臺(tái)打印當(dāng)前時(shí)間。
@Component public class ScheduledTasks { private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) public void reportCurrentTime() { log.info("The time is now {}", dateFormat.format(new Date())); } }
通過(guò)在方法上加@Scheduled注解,表明該方法是一個(gè)調(diào)度任務(wù)。
@Scheduled(fixedRate = 5000) :上一次開(kāi)始執(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 “) :通過(guò)cron表達(dá)式定義規(guī)則,什么是cro表達(dá)式,自行搜索引擎。測(cè)試
啟動(dòng)springboot工程,控制臺(tái)沒(méi)過(guò)5s就打印出了當(dāng)前的時(shí)間。
2017-04-29 17:39:37.672 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:37 2017-04-29 17:39:42.671 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:42 2017-04-29 17:39:47.672 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:47 2017-04-29 17:39:52.675 INFO 677 — [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:52總結(jié)
在springboot創(chuàng)建定時(shí)任務(wù)比較簡(jiǎn)單,只需2步:
1.在程序的入口加上@EnableScheduling注解。 2.在定時(shí)方法上加@Scheduled注解。參考資料
https://spring.io/guides/gs/s...
源碼下載https://github.com/forezp/Spr...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71446.html
摘要:前言在使用整合定時(shí)任務(wù),發(fā)現(xiàn)當(dāng)某個(gè)定時(shí)任務(wù)執(zhí)行出現(xiàn)執(zhí)行時(shí)間過(guò)長(zhǎng)的情況時(shí)會(huì)阻塞其他定時(shí)任務(wù)的執(zhí)行。問(wèn)題定位后續(xù)通過(guò)翻查的文檔以及打印日志輸出當(dāng)前線程信息得知問(wèn)題是由于默認(rèn)使用只要個(gè)線程處理定時(shí)任務(wù)。問(wèn)題復(fù)盤需要注意示例的版本為。 前言 在使用Springboot整合定時(shí)任務(wù),發(fā)現(xiàn)當(dāng)某個(gè)定時(shí)任務(wù)執(zhí)行出現(xiàn)執(zhí)行時(shí)間過(guò)長(zhǎng)的情況時(shí)會(huì)阻塞其他定時(shí)任務(wù)的執(zhí)行。 問(wèn)題定位 后續(xù)通過(guò)翻查Springboo...
摘要:馬蜂窩推薦系統(tǒng)對(duì)于請(qǐng)求的平均處理時(shí)延要求在級(jí)別,時(shí)延的線保持在以內(nèi)。任務(wù)隊(duì)列與異步寫入這里我們使用了中的線程池來(lái)實(shí)現(xiàn)。三優(yōu)化方向基于和,我們?cè)诂F(xiàn)有的推薦系統(tǒng)中增加了一個(gè)本地容災(zāi)緩存系統(tǒng),當(dāng)依賴服務(wù)或者應(yīng)用本身突發(fā)異常時(shí)可以返回緩存的數(shù)據(jù)。 數(shù)據(jù)庫(kù)突然斷開(kāi)連接、第三方接口遲遲不返回結(jié)果、高峰期網(wǎng)絡(luò)發(fā)生抖動(dòng)...... 當(dāng)程序突發(fā)異常時(shí),我們的應(yīng)用可以告訴調(diào)用方或者用戶「對(duì)不起,服務(wù)器出了...
摘要:馬蜂窩推薦系統(tǒng)對(duì)于請(qǐng)求的平均處理時(shí)延要求在級(jí)別,時(shí)延的線保持在以內(nèi)。任務(wù)隊(duì)列與異步寫入這里我們使用了中的線程池來(lái)實(shí)現(xiàn)。三優(yōu)化方向基于和,我們?cè)诂F(xiàn)有的推薦系統(tǒng)中增加了一個(gè)本地容災(zāi)緩存系統(tǒng),當(dāng)依賴服務(wù)或者應(yīng)用本身突發(fā)異常時(shí)可以返回緩存的數(shù)據(jù)。數(shù)據(jù)庫(kù)突然斷開(kāi)連接、第三方接口遲遲不返回結(jié)果、高峰期網(wǎng)絡(luò)發(fā)生抖動(dòng)...... 當(dāng)程序突發(fā)異常時(shí),我們的應(yīng)用可以告訴調(diào)用方或者用戶「對(duì)不起,服務(wù)器出了點(diǎn)問(wèn)題」...
閱讀 770·2021-11-23 09:51
閱讀 2476·2021-10-11 11:10
閱讀 1352·2021-09-23 11:21
閱讀 1120·2021-09-10 10:50
閱讀 917·2019-08-30 15:54
閱讀 3357·2019-08-30 15:53
閱讀 3316·2019-08-30 15:53
閱讀 3223·2019-08-29 17:23