Scheduled註解的cron自定義配置

2021-10-07 21:32:40 字數 1745 閱讀 5904

**中格式如下:

@scheduled

(cron =

"$")

properties配置檔案或yml配置檔案格式如下:

eventtimedtask.cron=0 * * * * * ?
eventtimedtask

:cron

: 0 * * * * * ?

cron表示式:(注意:從左往右)

字段允許值

允許的特殊字元

秒0-59

,-*/

分0-59

,-*/

時0-23

,-*/

日1-31

,-*?/lwc

月1-12

,-*/

星期1-7或是sun-sat(1是sun)

,-*?/lc#

年(可選)

1970-2099

,-*/

特殊字元含義

特殊字元

代表含義備註,

列舉,在乙個欄位中滿足其中乙個即可觸發

-區間(範圍)*任意

/步長"/「前面的值代表初始值(」「等同"0」),後面的值代表偏移量,比如"0/20"或者"/20"代表從0秒鐘開始,每隔20秒鐘觸發1次,即0秒觸發1次,20秒觸發1次,40秒觸發1次;"5/20"代表5秒觸發1次,25秒觸發1次,45秒觸發1次;"10-45/20"代表在[10,45]內步進20秒命中的時間點觸發,即10秒觸發1次,30秒觸發1次

?日/星期衝突匹配

與互斥,即意味著若明確指定觸發,則表示無意義,以免引起衝突和混亂l最後

如果佔位符如果是"l",即意味著星期的的最後一天觸發,即星期六觸發,l= 7或者 l = sat,因此,"5l"意味著乙個月的最後乙個星期四觸發

w工作日

字元「w」只允許日期域出現。這個字元用於指定日期的最近工作日。「l」和「w」可以在日期域中聯合使用,lw表示這個月最後一周的工作日

c和calendar聯絡後計算過的值

字元「c」允許在日期域和星期域出現。這個字元依靠乙個指定的「日曆」。也就是說這個表示式的值依賴於相關的「日曆」的計算結果,如果沒有「日曆」關聯,則等價於所有包含的「日曆」。如:日期域是「5c」表示關聯「日曆」中第一天,或者這個月開始的第一天的後5天。星期域是「1c」表示關聯「日曆」中第一天,或者星期的第一天的後1天,也就是週日的後一天(周一)。

#星期,如4#2,表示第二個星期三

星期欄位的可選值:

cron支援配置星期縮寫

public final static int sunday = 1; ---sun 星期日

public final static int monday = 2; ---mon 星期一

public final static int tuesday = 3; ---tue 星期二

public final static int wednesday = 4; ---wed 星期三

public final static int thursday = 5; ---thu 星期四

public final static int friday = 6; ---fri 星期五

public final static int saturday = 7; ---sat 星期六

多說一句:如果需要知道spring定時任務的寫法請檢視另一篇博文:spring定時任務

Scheduled註解的用法

cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 每乙個域可出現的字元如下 seconds 可出現 四個字元,有效範圍為0 59的整數 minutes 可出現 四個字元,有效範圍為0 59的整數 hours 可出現 四個字元,有效範圍...

定時任務註解 Scheduled

scheduled cron 0 0 2 每天凌晨兩點執行 void dosomethingwith 乙個cron表示式有至少6個 也可能7個 有空格分隔的時間元素。按順序依次為 秒 0 59 分鐘 0 59 小時 0 23 天 月 0 31,但是你需要考慮你月的天數 月 0 11 天 星期 1 7...

回顧定時任務註解 Scheduled

scheduled註解是包org.springframework.scheduling.annotation中的乙個註解,主要是用來開啟定時任務。target retention retentionpolicy.runtime documented repeatable schedules.clas...