欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring中的@Scheduled定時(shí)任務(wù)注解詳解

 更新時(shí)間:2023年09月25日 09:30:48   作者:騎個(gè)小蝸牛  
這篇文章主要介紹了Spring中的@Scheduled定時(shí)任務(wù)注解詳解,要使用@Scheduled注解,首先需要在啟動(dòng)類(lèi)添加@EnableScheduling,啟用Spring的計(jì)劃任務(wù)執(zhí)行功能,這樣可以在容器中的任何Spring管理的bean上檢測(cè)@Scheduled注解,執(zhí)行計(jì)劃任務(wù),需要的朋友可以參考下

1.注解源碼

&#64;Target({<!-- -->ElementType.METHOD, ElementType.ANNOTATION_TYPE})&#64;Retention(RetentionPolicy.RUNTIME)&#64;Documented&#64;Repeatable(Schedules.class)public &#64;interface Scheduled {<!-- -->String cron() default &#34;&#34;;String zone() default &#34;&#34;;long fixedDelay() default -1;String fixedDelayString() default &#34;&#34;;long fixedRate() default -1;String fixedRateString() default &#34;&#34;;long initialDelay() default -1;String initialDelayString() default &#34;&#34;;}

2.注解參數(shù)

參數(shù)說(shuō)明示例
cron任務(wù)執(zhí)行的cron表達(dá)式0/2 * * * * ?
zonecron表達(dá)時(shí)解析使用的時(shí)區(qū),默認(rèn)為服務(wù)器的本地時(shí)區(qū)。
使用java.util.TimeZone#getTimeZone(String)方法解析
GMT-8:00
fixedRate固定速率
上一次任務(wù)執(zhí)行開(kāi)始到下一次執(zhí)行開(kāi)始的間隔時(shí)間固定,單位為ms。
若在調(diào)度任務(wù)執(zhí)行時(shí),上一次任務(wù)還未執(zhí)行完畢,會(huì)加入worker隊(duì)列,等待上一次執(zhí)行完成后,馬上執(zhí)行下一次任務(wù)
1000
fixedRateString與fixedRate一致,只是間隔時(shí)間使用java.time.Duration#parse解析1000或PT1S
fixedDelay固定延遲
上一次任務(wù)執(zhí)行結(jié)束到下一次執(zhí)行開(kāi)始的間隔時(shí)間固定,單位為ms。
1000
fixedDelayString與fixedDelay一致,只是間隔時(shí)間使用java.time.Duration#parse解析1000或PT1S
initialDelay首次延遲多長(zhǎng)時(shí)間后執(zhí)行,單位ms。
之后按照f(shuō)ixedRate、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秒開(kāi)始,每隔兩秒執(zhí)行一次。

zone

@Scheduled(cron = "0/2 * * * * ?", zone = "GMT-8:00")

從0秒開(kāi)始,每隔兩秒執(zhí)行一次。

指定時(shí)間使用的時(shí)區(qū)為東八區(qū)。

fixedRate

@Scheduled(fixedRate = 1000)

1秒執(zhí)行一次,上次執(zhí)行開(kāi)始后過(guò)1秒執(zhí)行下一次。若到了1秒后但上次執(zhí)行還未完成,會(huì)加入worker隊(duì)列,等待上一次執(zhí)行完成后,馬上執(zhí)行下一次。

fixedRateString

@Scheduled(fixedDelayString = "1000")
@Scheduled(fixedDelayString = "PT1S")

都表示1秒執(zhí)行一次,上次執(zhí)行開(kāi)始后過(guò)1秒執(zhí)行下一次。若到了1秒后但上次執(zhí)行還未完成,會(huì)加入worker隊(duì)列,等待上一次執(zhí)行完成后,馬上執(zhí)行下一次。

fixedDelay

@Scheduled(fixedDelay = 1000)

1秒執(zhí)行一次,上次執(zhí)行完成后過(guò)1秒繼續(xù)執(zhí)行下一次。

fixedDelayString

@Scheduled(fixedDelayString = "1000")
@Scheduled(fixedDelayString = "PT1S")

都表示1秒執(zhí)行一次,上次執(zhí)行完成后過(guò)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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論