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