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

SpringBoot注解@EnableScheduling定時(shí)任務(wù)詳細(xì)解析

 更新時(shí)間:2024年01月25日 09:55:15   作者:暴走的山交  
這篇文章主要介紹了SpringBoot注解@EnableScheduling定時(shí)任務(wù)詳細(xì)解析,@EnableScheduling 開啟對(duì)定時(shí)任務(wù)的支持,啟動(dòng)類里面使用@EnableScheduling 注解開啟功能,自動(dòng)掃描,需要的朋友可以參考下

一、定時(shí)任務(wù)作用?

定時(shí)任務(wù)相當(dāng)于鬧鐘 在什么時(shí)間做什么事情(執(zhí)行什么命令/腳本)

參數(shù):

@EnableScheduling 開啟對(duì)定時(shí)任務(wù)的支持

其中Scheduled注解中有以下幾個(gè)參數(shù):

1.cron是設(shè)置定時(shí)執(zhí)行的表達(dá)式,如 0 0/5 ?每隔五分鐘執(zhí)行一次 秒 分 時(shí) 天 月

2.zone表示執(zhí)行時(shí)間的時(shí)區(qū)

3.fixedDelay 和fixedDelayString 表示一個(gè)固定延遲時(shí)間執(zhí)行,上個(gè)任務(wù)完成后,延遲多長(zhǎng)時(shí)間執(zhí)行

4.fixedRate 和fixedRateString表示一個(gè)固定頻率執(zhí)行,上個(gè)任務(wù)開始后,多長(zhǎng)時(shí)間后開始執(zhí)行

5.initialDelay 和initialDelayString表示一個(gè)初始延遲時(shí)間,第一次被調(diào)用前延遲的時(shí)間

二、舉例說明

1、pom.xml中導(dǎo)入必要的依賴:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>

<dependencies>
<!-- SpringBoot 核心組件 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2、寫一個(gè)springboot的啟動(dòng)類:

啟動(dòng)類里面使用@EnableScheduling 注解開啟功能,自動(dòng)掃描

@SpringBootApplication
@EnableScheduling //開啟定時(shí)任務(wù)
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

3、新建一個(gè)Job類:

  • 要在任務(wù)的類上寫@Component
  • 要在任務(wù)方法上寫@Scheduled
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
 * @ClassName Jobs
 * @Author jeffrey
 * @Description Jobs
 **/
@Component
public class Jobs {
    //表示方法執(zhí)行完成后5秒
    @Scheduled(fixedDelay = 5000)
    public void fixedDelayJob() throws InterruptedException {
        System.out.println("fixedDelay 每隔5秒" + new Date());
    }
    //表示每隔3秒
    @Scheduled(fixedRate = 3000)
    public void fixedRateJob() {
        System.out.println("fixedRate 每隔3秒" + new Date());
    }
    //表示每天8時(shí)30分0秒執(zhí)行
    @Scheduled(cron = "0 0,30 0,8 ? * ? ")
    public void cronJob() {
        System.out.println(new Date() + " ...>>cron....");
    }
}

執(zhí)行結(jié)果如下:

fixedRate 每隔3秒Thu Jun 20 20:26:41 CST 2019
fixedDelay 每隔5秒Thu Jun 20 20:26:43 CST 2019
fixedRate 每隔3秒Thu Jun 20 20:26:44 CST 2019
fixedDelay 每隔5秒Thu Jun 20 20:26:48 CST 2019

三、總結(jié)

  • fixedDelay和fixedRate,單位是毫秒,這里這里就是5秒和3秒,它們的區(qū)別就是:fixedRate就是每多次分鐘一次,不論你業(yè)務(wù)執(zhí)行花費(fèi)了多少時(shí)間。我都是1分鐘執(zhí)行1次,而fixedDelay是當(dāng)任務(wù)執(zhí)行完畢后1分鐘在執(zhí)行。所以根據(jù)實(shí)際業(yè)務(wù)不同,我們會(huì)選擇不同的方式。
  • cron表達(dá)式:比如你要設(shè)置每天什么時(shí)候執(zhí)行,就可以用它
  • cron表達(dá)式,有專門的語(yǔ)法,而且感覺有點(diǎn)繞人,不過簡(jiǎn)單來說,大家記住一些常用的用法即可,特殊的語(yǔ)法可以單獨(dú)去查。
  • cron一共有7位,但是最后一位是年,可以留空,所以我們可以寫6位:
  • 第一位,表示秒,取值0-59
  • 第二位,表示分,取值0-59
  • 第三位,表示小時(shí),取值0-23
  • 第四位,日期天/日,取值1-31
  • 第五位,日期月份,取值1-12
  • 第六位,星期,取值1-7,星期一,星期二...,注:不是第1周,第二周的意思
  • 另外:1表示星期天,2表示星期一。
  • 第7為,年份,可以留空,取值1970-2099

cron中,還有一些特殊的符號(hào),含義如下:

  • (*)星號(hào):可以理解為每的意思,每秒,每分,每天,每月,每年...
  • (?)問號(hào):?jiǎn)柼?hào)只能出現(xiàn)在日期和星期這兩個(gè)位置。
  • (-)減號(hào):表達(dá)一個(gè)范圍,如在小時(shí)字段中使用“10-12”,則表示從10到12點(diǎn),即10,11,12
  • (,)逗號(hào):表達(dá)一個(gè)列表值,如在星期字段中使用“1,2,4”,則表示星期一,星期二,星期四
  • (/)斜杠:如:x/y,x是開始值,y是步長(zhǎng),比如在第一位(秒) 0/15就是,從0秒開始,每15秒,最后就是0,15,30,45,60    另:*/y,等同于0/y

下面列舉幾個(gè)例子供大家來驗(yàn)證:

  • 0 0 3 * * ?     每天3點(diǎn)執(zhí)行
  • 0 5 3 * * ?     每天3點(diǎn)5分執(zhí)行
  • 0 5 3 ? * *     每天3點(diǎn)5分執(zhí)行,與上面作用相同
  • 0 5/10 3 * * ?  每天3點(diǎn)的 5分,15分,25分,35分,45分,55分這幾個(gè)時(shí)間點(diǎn)執(zhí)行
  • 0 10 3 ? * 1    每周星期天,3點(diǎn)10分 執(zhí)行,注:1表示星期天    
  • 0 10 3 ? * 1#3  每個(gè)月的第三個(gè)星期,星期天 執(zhí)行,#號(hào)只能出現(xiàn)在星期的位置

到此這篇關(guān)于SpringBoot注解@EnableScheduling定時(shí)任務(wù)詳細(xì)解析的文章就介紹到這了,更多相關(guān)SpringBoot注解@EnableScheduling內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA 自定義方法注解模板的實(shí)現(xiàn)方法

    IDEA 自定義方法注解模板的實(shí)現(xiàn)方法

    這篇文章主要介紹了IDEA 自定義方法注解模板的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 基于spring注入為null的原因及解決方案

    基于spring注入為null的原因及解決方案

    這篇文章主要介紹了spring注入為null的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • jvm原理之SystemGC源碼分析

    jvm原理之SystemGC源碼分析

    這篇文章主要介紹了jvm源碼分析之SystemGC的完全解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-01-01
  • idea使用帶provide修飾依賴導(dǎo)致ClassNotFound

    idea使用帶provide修飾依賴導(dǎo)致ClassNotFound

    程序打包到Linux上運(yùn)行時(shí),若Linux上也有這些依賴,為了在Linux上運(yùn)行時(shí)避免依賴沖突,可以使用provide修飾,本文主要介紹了idea使用帶provide修飾依賴導(dǎo)致ClassNotFound,下面就來介紹一下解決方法,感興趣的可以了解一下
    2024-01-01
  • Springboot中的Validation參數(shù)校驗(yàn)詳解

    Springboot中的Validation參數(shù)校驗(yàn)詳解

    這篇文章主要介紹了Springboot中的Validation參數(shù)校驗(yàn)詳解,Springboot參數(shù)校驗(yàn)是一種常用的驗(yàn)證機(jī)制,在傳遞參數(shù)時(shí)進(jìn)行校驗(yàn),以確保參數(shù)的有效性和正確性,該機(jī)制可以幫助開發(fā)者在代碼實(shí)現(xiàn)前就避免一些常見的錯(cuò)誤,需要的朋友可以參考下
    2023-10-10
  • SpringBoot中讀取jar包中的resources目錄下的文件的三種方式

    SpringBoot中讀取jar包中的resources目錄下的文件的三種方式

    這篇文章給大家總結(jié)了SpringBoot讀取 jar 包中的 resources 目錄下的文件的三種方式,文中有詳細(xì)的代碼示例供大家參考,,需要的朋友可以參考下
    2023-06-06
  • IntelliJ IDEA語(yǔ)法報(bào)錯(cuò)

    IntelliJ IDEA語(yǔ)法報(bào)錯(cuò)"Usage of API documented as @since 1.6+"的解決

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA語(yǔ)法報(bào)錯(cuò)"Usage of API documented as @since 1.6+"的解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • java+selenium 網(wǎng)易云音樂刷累計(jì)聽歌數(shù)的方法

    java+selenium 網(wǎng)易云音樂刷累計(jì)聽歌數(shù)的方法

    這篇文章主要介紹了java+selenium 網(wǎng)易云音樂刷累計(jì)聽歌數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java索引越界異常Exception java.lang.IndexOutOfBoundsException的解決

    Java索引越界異常Exception java.lang.IndexOutOfBoundsException

    本文主要介紹了Java索引越界異常Exception java.lang.IndexOutOfBoundsException的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • SpringBoot封裝響應(yīng)處理超詳細(xì)講解

    SpringBoot封裝響應(yīng)處理超詳細(xì)講解

    這篇文章主要介紹了SpringBoot封裝響應(yīng)處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12

最新評(píng)論