溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-06-08 09:48:47 來源:億速云 閱讀:139 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些”這篇文章吧。

一、SpringBoot--任務(wù):定時(shí)任務(wù)

項(xiàng)目開發(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 //開啟定時(shí)功能的注解,放在主入口
@Scheduled		//什么時(shí)候執(zhí)行
  
cron表達(dá)式

1.1 編寫定時(shí)任務(wù)的方法

我們里面存在一個(gè)hello方法,他需要定時(shí)執(zhí)行,怎么處理呢?

SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些

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 開啟開啟定時(shí)任務(wù)功能

這里寫完定時(shí)任務(wù)之后,我們需要在主程序上增加@EnableScheduling 開啟定時(shí)任務(wù)功能

SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些

EmaildemoApplication.java

SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些

1.3 運(yùn)行結(jié)果:

SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些

1.4 常用corn表達(dá)式 & 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ā)

以上是“SpringBoot任務(wù)之定時(shí)任務(wù)的知識(shí)點(diǎn)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI