Cron表示式語法及注意

2021-08-30 14:01:35 字數 2142 閱讀 9049

cron表示式的格式由7部分構成,各個部分之間用空格隔開,其中第7個部分為可選部分。格式如下:

各個部分表示的意義如下:

第一部分:秒(0~59)

第二部分:分(0~59)

第三部分:小時(0~23)

第四部分:月中的日期(1~31)

第五部分:月份(1~12或jan~dec)

第六部分:每週的週幾(1~7或sun~sat)

第七部分:年份(1970~2099)【可選】

每個部分所能使用的所有符號如下:

*:匹配該域的任意值;如*用在分所在的域,表示每分鐘都會觸發事件;

?:匹配該域的任意值;

-:匹配乙個特定的範圍值;如時所在的域的值是10-12,表示10、11、12點的時候會觸發事件;

,:匹配多個指定的值;如周所在的域的值是2,4,6,表示在周

一、週三、周五就會觸發事件(1表示週日,2表示周一,3表示周二,以此類推,7表示週六);

/:左邊是開始觸發時間,右邊是間隔的時間;如秒所在的域的值是5/15,表示5秒、20秒(隔15秒)、35秒(隔15秒)、50秒(隔15秒)時都觸發一次事件;

l:最後(last),表示該域的最後乙個值;如果是用在天這個域,表示月的最後一天;如果是用在周所在的域,如6l,表示某個月最後乙個周五。

w:工作日(weekday);如天所在的域的值是15w,表示本月15日最近的工作日;如果15日是週六,觸發器將觸發上14日周五;如果15日是週日,觸發器將觸發16日周一;如果15日不是週六或週日,而是周一至周五的某乙個,那麼它就在15日當天觸發事件;

#:用來指定每個月的第幾個星期幾;如6#3表示某個月的第三個星期五;

【* 與 ? 的區別】

* 可以用在所有的部分中;

? 只能用在第四部分(月中的日期)與第六部分(每週的週幾)這兩個部分中。

因為 第四部分(月中的日期)與第六部分(每週的週幾)這兩個域的值是互斥的,因此需要通過設定乙個問號(?)來表明不想設定的那個字段。

例如:設定每月的20日觸發排程,不管20日到底是星期幾,則只能使用如下寫法:

1 1 1 20 * ?

其中最後一位只能用?,而不能使用*,如果使用*表示不管星期幾都會觸發,實際上並不是這樣!!!

實用的cron表示式例子:

cron表示式

表示的含義

0 0 12 * * ?

每天12:00觸發事件

0 15 10 ? * *

每天10:15觸發事件

0 15 10 * * ?

每天10:15觸發事件

0 15 10 * * ? *

每天10:15觸發事件

0 15 10 * * ? 2005

2023年的每天10:15觸發事件

0 * 14 * * ?

每天14點開始觸發,每分鐘觸發一次,14:59分結束

0 0/5 14 * * ?

每天14點開始觸發到14:59分結束的每5分鐘觸發一次事件

0 0/5 14,18 * * ?

每天14點開始到14:59期間和18點到18:59期間的每5分鐘觸發一次事件

0 0-5 14 * * ?

每天14點到14:05期間的每1分鐘觸發一次事件

0 10,44 14 ? 3 wed

每年3月的星期三的14:10和14:44觸發一次事件

0 15 10 ? * mon-fri

周一至周五的10:15觸發一次事件

0 15 10 15 * ?

每月15日10:15觸發一次事件

0 15 10 l * ?

每月最後一日的10:15觸發一次事件

0 15 10 ? * 6l

每月的最後乙個星期五10:15觸發一次事件

0 15 10 ? * 6l 2002-2005

2023年至2023年的每月的最後乙個星期五10:15觸發一次事件

0 15 10 ? * 6#3

每月的第三個星期五10:15觸發一次事件

cron表示式語法

在工作中可能會遇到定時任務的情況,或者是自定義時間範圍,通常會使用cron表示式,現介紹cron表示式的語法。cron表示式包括五個字段,由空格分隔。從左到右,五個cron欄位有不同的意義 分鐘 0 59 小時 0 23 日期 1 31 月份 1 12 週幾 0 6 0表示週日 用法 格式 描述含義...

Cron表示式的簡單語法

六位或者七位的表示式,用空格隔開 對應順序為 秒 分 時 日 月 星期 年 可選 秒 0 59 分 0 59 時 0 23 日 1 31 月 1 12 星期 1 7 年 可選 空值或者1970 2099 符號 對應每乙個時刻 只能在日期和星期欄位中使用,無意義的佔位符 表示乙個範圍 10 11表示1...

cron表示式的語法規則

cron表示式的語法規則 十分鐘你就能寫轉殖表示式 同 unix cron 一樣,quartz cron 表示式支援用特殊字元來建立更為複雜的執行計畫。然而,quartz 在特殊字元的支援上比標準 unix cron 表示式更豐富了。使用星號 指示著你想在這個域上包含所有合法的值。例如,在月份域上使...