Spring中的@Scheduled定時(shí)任務(wù)注解詳解
1.注解源碼
@Target({<!-- -->ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Schedules.class)public @interface Scheduled {<!-- -->String cron() default "";String zone() default "";long fixedDelay() default -1;String fixedDelayString() default "";long fixedRate() default -1;String fixedRateString() default "";long initialDelay() default -1;String initialDelayString() default "";}
2.注解參數(shù)
參數(shù) | 說明 | 示例 |
cron | 任務(wù)執(zhí)行的cron表達(dá)式 | 0/2 * * * * ? |
zone | cron表達(dá)時(shí)解析使用的時(shí)區(qū),默認(rèn)為服務(wù)器的本地時(shí)區(qū)。 使用java.util.TimeZone#getTimeZone(String)方法解析 | GMT-8:00 |
fixedRate | 固定速率 上一次任務(wù)執(zhí)行開始到下一次執(zhí)行開始的間隔時(shí)間固定,單位為ms。 若在調(diào)度任務(wù)執(zhí)行時(shí),上一次任務(wù)還未執(zhí)行完畢,會加入worker隊(duì)列,等待上一次執(zhí)行完成后,馬上執(zhí)行下一次任務(wù) | 1000 |
fixedRateString | 與fixedRate一致,只是間隔時(shí)間使用java.time.Duration#parse解析 | 1000或PT1S |
fixedDelay | 固定延遲 上一次任務(wù)執(zhí)行結(jié)束到下一次執(zhí)行開始的間隔時(shí)間固定,單位為ms。 | 1000 |
fixedDelayString | 與fixedDelay一致,只是間隔時(shí)間使用java.time.Duration#parse解析 | 1000或PT1S |
initialDelay | 首次延遲多長時(shí)間后執(zhí)行,單位ms。 之后按照fixedRate、fixedRateString、fixedDelay、fixedDelayString指定的規(guī)則執(zhí)行,需要指定其中一個(gè)規(guī)則。 注意:不能和cron一起使用 | 1000 |
initialDelayString | 與initialDelay 一致,只是間隔時(shí)間使用java.time.Duration#parse解析 | 1000或PT1S |
3.示例
cron
@Scheduled(cron = "0/2 * * * * ?")
從0秒開始,每隔兩秒執(zhí)行一次。
zone
@Scheduled(cron = "0/2 * * * * ?", zone = "GMT-8:00")
從0秒開始,每隔兩秒執(zhí)行一次。
指定時(shí)間使用的時(shí)區(qū)為東八區(qū)。
fixedRate
@Scheduled(fixedRate = 1000)
1秒執(zhí)行一次,上次執(zhí)行開始后過1秒執(zhí)行下一次。若到了1秒后但上次執(zhí)行還未完成,會加入worker隊(duì)列,等待上一次執(zhí)行完成后,馬上執(zhí)行下一次。
fixedRateString
@Scheduled(fixedDelayString = "1000")
@Scheduled(fixedDelayString = "PT1S")
都表示1秒執(zhí)行一次,上次執(zhí)行開始后過1秒執(zhí)行下一次。若到了1秒后但上次執(zhí)行還未完成,會加入worker隊(duì)列,等待上一次執(zhí)行完成后,馬上執(zhí)行下一次。
fixedDelay
@Scheduled(fixedDelay = 1000)
1秒執(zhí)行一次,上次執(zhí)行完成后過1秒繼續(xù)執(zhí)行下一次。
fixedDelayString
@Scheduled(fixedDelayString = "1000")
@Scheduled(fixedDelayString = "PT1S")
都表示1秒執(zhí)行一次,上次執(zhí)行完成后過1秒繼續(xù)執(zhí)行下一次。
initialDelay
@Scheduled(initialDelay = 5000, fixedRate = 2000)
首次5秒后執(zhí)行,后續(xù)每隔2秒執(zhí)行一次(遵循fixedRate 規(guī)則)
@Scheduled(initialDelay = 5000, fixedDelay = 2000)
首次5秒后執(zhí)行,后續(xù)每隔2秒執(zhí)行一次(遵循fixedDelay 規(guī)則)
注意:initialDelay、initialDelayString都不能和cron一起使用
initialDelayString
@Scheduled(initialDelayString = "5000", fixedRate = 2000)
首次5秒后執(zhí)行,后續(xù)每隔2秒執(zhí)行一次(遵循fixedRate 規(guī)則)
@Scheduled(initialDelayString = "5000", fixedDelay = 2000)
首次5秒后執(zhí)行,后續(xù)每隔2秒執(zhí)行一次(遵循fixedDelay 規(guī)則)
注意:initialDelay、initialDelayString都不能和cron一起使用
到此這篇關(guān)于Spring中的@Scheduled定時(shí)任務(wù)注解詳解的文章就介紹到這了,更多相關(guān)@Scheduled定時(shí)任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring自帶定時(shí)任務(wù)@Scheduled注解實(shí)例講解
- Spring定時(shí)任務(wù)@scheduled多線程使用@Async注解示例
- Spring定時(shí)任務(wù)@Scheduled注解(cron表達(dá)式fixedRate?fixedDelay)
- SpringBoot中@Scheduled()注解以及cron表達(dá)式詳解
- Spring 定時(shí)任務(wù)@Scheduled 注解中的 Cron 表達(dá)式詳解
- SpringBoot中定時(shí)任務(wù)@Scheduled注解的使用解讀
- spring-boot通過@Scheduled配置定時(shí)任務(wù)及定時(shí)任務(wù)@Scheduled注解的方法
- 詳解在Spring3中使用注解(@Scheduled)創(chuàng)建計(jì)劃任務(wù)
- spring @Scheduled定時(shí)任務(wù)注解使用方法及注意事項(xiàng)小結(jié)
相關(guān)文章
SpringMVC 參數(shù)綁定相關(guān)知識總結(jié)
這篇文章主要介紹了SpringMVC 參數(shù)綁定相關(guān)知識總結(jié),幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下2021-03-03Java Spring Security認(rèn)證與授權(quán)及注銷和權(quán)限控制篇綜合解析
Spring Security 是 Spring 家族中的一個(gè)安全管理框架,實(shí)際上,在 Spring Boot 出現(xiàn)之前,Spring Security 就已經(jīng)發(fā)展了多年了,但是使用的并不多,安全管理這個(gè)領(lǐng)域,一直是 Shiro 的天下2021-10-10MyBatis使用<foreach>標(biāo)簽like查詢報(bào)錯解決問題
這篇文章主要介紹了MyBatis使用<foreach>標(biāo)簽like查詢報(bào)錯解決問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03Java 仿天貓服裝商城系統(tǒng)的實(shí)現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)一個(gè)仿天貓服裝商城系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11springboot實(shí)現(xiàn)訪問多個(gè)redis庫
這篇文章主要介紹了springboot實(shí)現(xiàn)訪問多個(gè)redis庫方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05Java數(shù)據(jù)結(jié)構(gòu)常見幾大排序梳理
Java常見的排序算法有:直接插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序等。本文詳解介紹它們的實(shí)現(xiàn)以及圖解,需要的可以參考一下2022-03-03詳解IDEA用maven創(chuàng)建springMVC項(xiàng)目和配置
本篇文章主要介紹了詳解IDEA用maven創(chuàng)建springMVC項(xiàng)目和配置 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09