cron表示式的語法規則

2021-06-22 10:11:14 字數 2950 閱讀 3671

cron表示式的語法規則 :十分鐘你就能寫轉殖表示式

同 unix cron 一樣,quartz cron 表示式支援用特殊字元來建立更為複雜的執行計畫。然而,quartz 在特殊字元的支援上比標準 unix cron 表示式更豐富了。  

使用星號(*)指示著你想在這個域上包含所有合法的值。例如,在月份域上使用星號意味著每個月都會觸發這個trigger

表達式樣例:

0 * 17 * * ?

意義:每天從下午5點到下午5:59中的每分鐘激發一次 trigger。它停在下午 5:59 是因為值 17 在小時域上,在下午 6 點時,小時變為 18 了,也就不再理會這個 trigger,直到下一天的下午5點。

?號只能用在日和周域上,但是不能在這兩個域上同時使用。你可以認為?字元是"我並不關心在該域上是什麼值。"這不同於星號,星號是指示著該域上的每乙個值。?是說不為該域指定值。

不能同時這兩個域上指定值的理由是難以解釋甚至是難以理解的。基本上,假定同時指定值的話,意義就會變得含混不清了:考慮一下,如果乙個表 達式在日域上有值11,同時在周域上指定了 wed。那麼是要 trigger 僅在每個月的11號,且正好又是星期三那天被激發?還是在每個星期三的11號被激發呢?要去除這種不明確性的辦法就是不能同時在這兩個域上指定值。

只要記住,假如你為這兩域的其中乙個指定了值,那就必須在另乙個字值上放乙個 ?。

表達式樣例:

0 10,44 14 ? 3 web

意義:在三月中的每個星期三的下午 2:10 和 下午 2:44 被觸發。

表達式樣例:

0 0,15,30,45 * * * ?

意義:每刻鐘觸發一次 trigger。

斜槓 (/) 是用於時間表的遞增的。我們剛剛用了逗號來表示每15分鐘的遞增,但是我們也能寫成這樣 0/15。

表達式樣例:

0/15 0/30 * * * ?

意義:在整點和半點時,每15秒觸發 trigger。

我的表示式例子:

0/5 0/10 * * * ?

意義:從整點和整點每隔10分鐘開始, 每5秒觸發

00:00:05

00:00:10

00:00:15

00:10:05

00:10:10

00:11:00

00:11:05

00:20:00

00:20:05

此處的 cron 表示式 cookbook 旨在為常用的執行需求提供方案。儘管不可能列舉出所有的表示式,但下面的應該為滿足你的業務需求提供了足夠的例子。

表 5.1. 包括了分鐘頻度的任務計畫 cron 表示式 用法 表示式

每天的從 5:00 pm 至 5:59 pm 中的每分鐘觸發 0 * 17 * * ?

每天的從 11:00 pm 至 11:55 pm 中的每五分鐘觸發 0 0/5 23 * * ?

每天的從 3:00 至 3:55 pm 和 6:00 pm 至 6:55 pm 之中的每五分鐘觸發 0 0/5 15,18 * * ?

每天的從 5:00 am 至 5:05 am 中的每分鐘觸發 0 0-5 5 * * ?

表 5.2. 基於日的頻度上任務計畫的 cron 表示式 用法 表示式

每天的 3:00 am  0 0 3 * * ?

每天的 3:00 am (另一種寫法)  0 0 3 ? * *

每天的 12:00 pm (中午) 0 0 12 * * ?

在 2005 中每天的 10:15 am 0 15 10 * * ? 2005

表 5.3. 基於周和/或月的頻度上任務計畫的 cron 表示式 用法 表示式

在每個周一,二, 三和周四的 10:15 am 0 15 10 ? * mon-fri

每月15號的 10:15 am   0 15 10 15 * ?

每月最後一天的 10:15 am 0 15 10 l * ?

每月最後乙個周五的 10:15 am  0 15 10 ? * 6l

在 2002, 2003, 2004, 和 2005 年中的每月最後乙個周五的 10:15 am  0 15 10 ? * 6l 2002-2005

每月第三個周五的 10:15 am 0 15 10 ? * 6#3

每月從第一天算起每五天的 12:00 pm (中午) 0 0 12 1/5 * ?

每乙個 11 月 11 號的 11:11 am 0 11 11 11 11 ?

三月份每個週三的 2:10 pm 和 2:44 pm 0 10,44 14 ? 3 wed

[u1]在你希望 trigger 在該域的所有有效值上被激發時使用 * 字元

[u2]

1            ? 是說不為該域指定值。

2   ? 號只能用在日和周域上,但是不能在這兩個域上同時使用。

3  假如你為這兩域的其中乙個指定了值,那就必須在另乙個字值上放乙個 ?

[u3]

斜槓 (/) 是用於時間表的遞增的。

[u4]

中劃線 (-) 用於指定乙個範圍

[u5]

它僅被日和周域支援。

[u6]

[u7]

#字元僅能用於周域中

正規表示式的語法規則

正規表示式通常包含字母文字 literal text 和元字元 metacharacter 字母文字指的是普通文字如 abcde 可匹配字串中任何包含 abcde 的字串。元字元則更加靈活運用通用的表示式匹配所有符合此表示式規律的字串。一 匹配單個字元 從中選擇乙個字元匹配 中間支援的型別 單詞字元...

正規表示式的語法規則

一 行定位符 和 行定位符就是用來描述字串的邊界。表示行的開始 表示行的結尾。如 tm 該表示式表示要匹配字串tm的開始位置是行頭,如tm equal tomorrow moon就可以匹配 tm 該表示式表示要匹配字串tm的位置是行尾,tomorrow moon equal tm匹配。如果要匹配的字...

cron表示式語法

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