Spring Boot定時任務(wù)入門

這里介紹最簡單的Spring Boot定時任務(wù)入門

  • 新建一個Spring Boot項目,我們在Spring Boot的入口類Application.java中馒吴,允許支持schedule
package com.example.timing;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class TimingApplication {

    public static void main(String[] args) {
        SpringApplication.run(TimingApplication.class, args);
    }
}
  • 新建一個執(zhí)行類
package com.example.timing.service;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

@Component
public class TimeService {
    /**
     * 通過時間表達式執(zhí)行定時任務(wù)
     */
    @Scheduled(cron = "0/5 * * * * ?")
    public void timerToNow(){
        System.out.println("now time:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    }
    /**
     *啟動時間點之后 X毫秒秒執(zhí)行一次
     */
    @Scheduled(fixedRate = 10000)
    public void timerToZZP(){
        System.out.println("fixedRate:" + new Random().nextLong() + new SimpleDateFormat("HH:mm:ss").format(new Date()));
    }
    /**
     * 結(jié)束時間點之后 每X毫秒執(zhí)行一次
     */
    @Scheduled(fixedDelay = 10000)
    public void timerToReportCount(){
        System.out.println("fixedDelay:" + new Random().nextLong() + new SimpleDateFormat("HH:mm:ss").format(new Date()));
    }
    /**
     * 第一次延遲 X毫秒執(zhí)行,之后按照fixedRate的規(guī)則每X毫秒執(zhí)行
     */
    @Scheduled(initialDelay = 1000,fixedRate = 6000)
    public void timerToReport(){
        System.out.println("initialDelay:" + new Random().nextLong() + new SimpleDateFormat("HH:mm:ss").format(new Date()));
    }
}

  • 輸出結(jié)果


    輸出結(jié)果.png

注釋

①corn:通過時間表達式執(zhí)行定時任務(wù)
②fixedRate:啟動時間點之后 X毫秒秒執(zhí)行一次
③fixedDelay:結(jié)束時間點之后 每X毫秒執(zhí)行一次
④initialDelay:第一次延遲 X毫秒執(zhí)行饮戳,之后按照fixedRate的規(guī)則每X毫秒執(zhí)行

corn用法

cron表達式,有專門的語法扯罐,而且感覺有點繞人负拟,不過簡單來說歹河,大家記住一些常用的用法即可掩浙,特殊的語法可以單獨去查启泣。
cron一共有7位涣脚,但是最后一位是年寥茫,可以留空,所以我們可以寫6位:

* 第一位矾麻,表示秒纱耻,取值0-59
* 第二位,表示分险耀,取值0-59
* 第三位,表示小時甩牺,取值0-23
* 第四位蘑志,日期天/日贬派,取值1-31
* 第五位急但,日期月份搞乏,取值1-12
* 第六位波桩,星期请敦,取值1-7镐躲,星期一,星期二...萤皂,注:不是第1周撒穷,第二周的意思
          另外:1表示星期天裆熙,2表示星期一桥滨。
* 第7為弛车,年份齐媒,可以留空纷跛,取值1970-2099

cron中喻括,還有一些特殊的符號贫奠,含義如下:

(*)星號:可以理解為每的意思唬血,每秒,每分拷恨,每天,每月谢肾,每年...
(?)問號:問號只能出現(xiàn)在日期和星期這兩個位置,表示這個位置的值不確定芦疏,每天3點執(zhí)行,所以第六位星期的位置酸茴,我們是不需要關(guān)注的分预,就是不確定的值薪捍。同時:日期和星期是兩個相互排斥的元素笼痹,通過問號來表明不指定值酪穿。比如凳干,1月10日昆稿,比如是星期1纺座,如果在星期的位置是另指定星期二溉潭,就前后沖突矛盾了净响。
(-)減號:表達一個范圍,如在小時字段中使用“10-12”馋贤,則表示從10到12點赞别,即10,11,12
(,)逗號:表達一個列表值配乓,如在星期字段中使用“1,2,4”仿滔,則表示星期一犹芹,星期二崎页,星期四
(/)斜杠:如:x/y腰埂,x是開始值飒焦,y是步長屿笼,比如在第一位(秒) 0/15就是牺荠,從0秒開始驴一,每15秒休雌,最后就是0肝断,15杈曲,30孝情,45鱼蝉,60    另:*/y箫荡,等同于0/y

下面列舉幾個例子:

0 0 3 * * ?     每天3點執(zhí)行
0 5 3 * * ?     每天3點5分執(zhí)行
0 5 3 ? * *     每天3點5分執(zhí)行,與上面作用相同
0 5/10 3 * * ?  每天3點的 5分渔隶,15分,25分间唉,35分,45分呈野,55分這幾個時間點執(zhí)行
0 10 3 ? * 1    每周星期天低矮,3點10分 執(zhí)行被冒,注:1表示星期天    
0 10 3 ? * 1#3  每個月的第三個星期军掂,星期天 執(zhí)行,#號只能出現(xiàn)在星期的位置
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝗锥,一起剝皮案震驚了整個濱河市蜡镶,隨后出現(xiàn)的幾起案子镜撩,更是在濱河造成了極大的恐慌圃验,老刑警劉巖穴张,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異皂甘,居然都是意外死亡,警方通過查閱死者的電腦和手機叮贩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來益老,“玉大人彪蓬,你說我怎么就攤上這事捺萌〉刀” “怎么了桃纯?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵酷誓,是天一觀的道長态坦。 經(jīng)常有香客問我盐数,道長伞梯,這世上最難降的妖魔是什么玫氢? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任谜诫,我火速辦了婚禮漾峡,結(jié)果婚禮上喻旷,老公的妹妹穿的比我還像新娘生逸。我一直安慰自己,他們只是感情好槽袄,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掰伸,像睡著了一般皱炉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狮鸭,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音歧蕉,去河邊找鬼灾部。 笑死惯退,一個胖子當著我的面吹牛赌髓,可吹牛的內(nèi)容都是我干的催跪。 我是一名探鬼主播锁蠕,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼懊蒸,長吁一口氣:“原來是場噩夢啊……” “哼荣倾!你這毒婦竟也來了骑丸?” 一聲冷哼從身側(cè)響起舌仍,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤通危,失蹤者是張志新(化名)和其女友劉穎铸豁,沒想到半個月后菊碟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體节芥,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡框沟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忍燥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡梅垄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情靡馁,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布臭墨,位于F島的核電站,受9級特大地震影響膘盖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侠畔,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望软棺。 院中可真熱鬧红竭,春花似錦喘落、人聲如沸茵宪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兽狭。三九已至憾股,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間箕慧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工颠焦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伐庭。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像圾另,于是被迫代替她去往敵國和親霸株。 傳聞我的和親對象是個殘疾皇子集乔,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理去件,服務(wù)發(fā)現(xiàn),斷路器尤溜,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,811評論 6 342
  • 一、SpringBoot Starter講解 簡介:介紹什么是SpringBoot Starter和主要作用 ...
    DdShare閱讀 1,707評論 2 0
  • 要學(xué)習(xí)很牛B的編程技術(shù)之前我們還是得有點基礎(chǔ)準備宫莱,哈哈,這是肯定的授霸,那么我們現(xiàn)在就開始吧Q惭椤>稀深碱!1.1 變量變量是撒...
    騎驢看唱本的菜鳥閱讀 320評論 0 0
  • 好的婚姻藏畅,是兩個人在有限空間里的無限互動敷硅。 我老婆這樣的女人太普通,但在我眼里愉阎,只此一款,不退不換榜旦!
    彧一閱讀 119評論 0 0