天天看點

3.Spring進階話題—3.計劃任務

1.點睛

從spring3.1開始,計劃任務在spring中的實作變得異常的簡單。首先通過在配置類注解@enablescheduling來開啟對計劃任務的支援,然後在要執行計劃任務的方法上注解@scheduled,聲明這是一個計劃任務。

spring通過@scheduled支援多種類型的計劃任務,包含cron、fixdelay、fixrate等。

//@scheduled(fixeddelay=one_minute)

//@scheduled(fixedrate=one_minute)

//第一位,表示秒,取值0-59

//第二位,表示分,取值0-59

//第三位,表示小時,取值0-23

//第四位,日期天/日,取值1-31

//第五位,日期月份,取值1-12

//第六位,星期,取值1-7,星期一,星期二...,注:不是第1周,第二周的意思,另外:1表示星期天,2表示星期一

//第7位,年份,可以留白,取值1970-2099

//(*)星号:可以了解為每的意思,每秒,每分,每天,每月,每年...

//(?)問号:問号隻能出現在日期和星期這兩個位置,表示這個位置的值不确定,每天3點執行,是以第六位星期的位置,我們是不需要關注的,就是不确定的值。同時:日期和星期是兩個互相排斥的元素,通過問号來表明不指定值。比如,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

2.示例

(1)計劃任務執行類

3.Spring進階話題—3.計劃任務

通過@scheduled聲明該方法是計劃任務,使用fixedrate屬性每隔固定時間執行。

使用cron屬性可按照指定時間執行,本例指的是每天11點28分執行;cron是unix和類unix(linux)系統下的定時任務。

(2)配置類

3.Spring進階話題—3.計劃任務

通過@enablescheduling注解開啟對計劃任務的支援。

(3)運作

3.Spring進階話題—3.計劃任務

結果

3.Spring進階話題—3.計劃任務