Java之SpringBoot定時(shí)任務(wù)案例講解
1. SpringBoot--任務(wù):定時(shí)任務(wù)
項(xiàng)目開(kāi)發(fā)中經(jīng)常需要執(zhí)行一些定時(shí)任務(wù),比如需要在每天凌晨的時(shí)候, 分析一次前一天的日志信息,Spring為我們提供了異步執(zhí)行任務(wù)調(diào)度的方式,提供了 兩個(gè)接口和兩個(gè)注解,并且用corn表達(dá)式去定時(shí)。
TaskScheduler //任務(wù)調(diào)度程序 TaskExecutor //任務(wù)執(zhí)行者 @EnableScheduling //開(kāi)啟定時(shí)功能的注解,放在主入口 @Scheduled //什么時(shí)候執(zhí)行 cron表達(dá)式
1.1 編寫(xiě)定時(shí)任務(wù)的方法
我們里面存在一個(gè)hello方法,他需要定時(shí)執(zhí)行,怎么處理呢?
TimerController.java
package com.tian.emaildemo.controller; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.RestController; @RestController public class TimerController { /** * 秒 分 時(shí) 日 月 周幾 * 0 * * * * 1-7 * 注意cron表達(dá)式的用法: * 這里是每2秒執(zhí)行一次 */ @Scheduled(cron = "0/2 * * * * ?") public void hello() { System.out.println("hello....."); } }
1.2 開(kāi)啟開(kāi)啟定時(shí)任務(wù)功能
這里寫(xiě)完定時(shí)任務(wù)之后,我們需要在主程序上增加@EnableScheduling 開(kāi)啟定時(shí)任務(wù)功能
EmaildemoApplication.java
1.3 運(yùn)行結(jié)果:
1.4 常用corn表達(dá)式 & corn表達(dá)式在線生成器
(1)0/2 * * * * ? 表示每2秒 執(zhí)行任務(wù) (1)0 0/2 * * * ? 表示每2分鐘 執(zhí)行任務(wù) (1)0 0 2 1 * ? 表示在每月的1日的凌晨2點(diǎn)調(diào)整任務(wù) (2)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15執(zhí)行作業(yè) (3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每個(gè)月的最后一個(gè)星期五上午10:15執(zhí)行作 (4)0 0 10,14,16 * * ? 每天上午10點(diǎn),下午2點(diǎn),4點(diǎn) (5)0 0/30 9-17 * * ? 朝九晚五工作時(shí)間內(nèi)每半小時(shí) (6)0 0 12 ? * WED 表示每個(gè)星期三中午12點(diǎn) (7)0 0 12 * * ? 每天中午12點(diǎn)觸發(fā) (8)0 15 10 ? * * 每天上午10:15觸發(fā) (9)0 15 10 * * ? 每天上午10:15觸發(fā) (10)0 15 10 * * ? 每天上午10:15觸發(fā) (11)0 15 10 * * ? 2005 2005年的每天上午10:15觸發(fā) (12)0 * 14 * * ? 在每天下午2點(diǎn)到下午2:59期間的每1分鐘觸發(fā) (13)0 0/5 14 * * ? 在每天下午2點(diǎn)到下午2:55期間的每5分鐘觸發(fā) (14)0 0/5 14,18 * * ? 在每天下午2點(diǎn)到2:55期間和下午6點(diǎn)到6:55期間的每5分鐘觸發(fā) (15)0 0-5 14 * * ? 在每天下午2點(diǎn)到下午2:05期間的每1分鐘觸發(fā) (16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44觸發(fā) (17)0 15 10 ? * MON-FRI 周一至周五的上午10:15觸發(fā) (18)0 15 10 15 * ? 每月15日上午10:15觸發(fā) (19)0 15 10 L * ? 每月最后一日的上午10:15觸發(fā) (20)0 15 10 ? * 6L 每月的最后一個(gè)星期五上午10:15觸發(fā) (21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一個(gè)星期五上午10:15觸發(fā) (22)0 15 10 ? * 6#3 每月的第三個(gè)星期五上午10:15觸發(fā)
到此這篇關(guān)于Java之SpringBoot定時(shí)任務(wù)案例講解的文章就介紹到這了,更多相關(guān)Java之SpringBoot定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java構(gòu)造方法 super 及自定義異常throw合集詳解用法
異常是程序中的一些錯(cuò)誤,但不是所有錯(cuò)誤都是異常,且錯(cuò)誤有時(shí)候是可以避免的,super可以理解為是指向自己超(父)類(lèi)對(duì)象的一個(gè)指針,而這個(gè)超類(lèi)指的是離自己最近的一個(gè)父類(lèi),構(gòu)造器也叫構(gòu)造方法、構(gòu)造函數(shù),是一種特殊類(lèi)型的方法,負(fù)責(zé)類(lèi)中成員變量(域)的初始化2021-10-10springboot+jsonp解決前端跨域問(wèn)題小結(jié)
這篇文章主要介紹了springboot+jsonp解決前端跨域問(wèn)題小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶(hù)信息
這篇文章主要介紹了SpringBoot使用Redis的zset統(tǒng)計(jì)在線用戶(hù)信息,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下2021-04-04基于Java實(shí)現(xiàn)馬踏棋盤(pán)游戲算法
這篇文章主要為大家詳細(xì)介紹了基于Java實(shí)現(xiàn)馬踏棋盤(pán)游戲算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類(lèi)
這篇文章主要介紹了Java實(shí)現(xiàn)產(chǎn)生隨機(jī)字符串主鍵的UUID工具類(lèi),涉及java隨機(jī)數(shù)與字符串遍歷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10Java常用的數(shù)據(jù)脫敏方法(手機(jī)、郵箱、身份證號(hào))
這篇文章主要給大家介紹了關(guān)于Java常用的數(shù)據(jù)脫敏(手機(jī)、郵箱、身份證號(hào))的相關(guān)資料,信息脫敏對(duì)某些敏感信息通過(guò)脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù),需要的朋友可以參考下2023-07-07Spring如何使用@Indexed加快啟動(dòng)速度
這篇文章主要介紹了Spring如何使用@Indexed加快啟動(dòng)速度,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文)
這篇文章主要介紹了Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10