Jenkins定時構建語法規則及時間設置

Jenkins定時構建時間設置

Jenkins時區設置為北京時間

打開 【系統管理】->【腳本命令行】運行下面的命令

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

查看時間:

[root@120jenkins ~]# dateSat Apr 25 13:55:51 CST 2020

官方說明翻譯

MINUTE HOUR DOM MONTH DOW

這個字段就好比cron定時任務語法(隻有較小的差別),具體來說,每行由5個被TAB或空格分割的字段組成。

其中每個字段除瞭可以使用取值范圍內的值外,還能使用一些特殊的字符。

*     匹配范圍內所有值
M-N   匹配M~N范圍內所有值
M-N/X 或者 */X   在指定M~N范圍內或整個有效區間內每隔X構建一次 
A,B,...,Z        匹配多個值

為瞭在系統中生成定時任務,符號H(代表“Hash”,後面用“散列”代替)應該用在可能用到的地方,例如:為十幾個日常任務配置0 0 * * *將會在午夜產生較大峰值。相比之下,配置H H * * * 仍將每天一次執行每個任務,不是都在同一時刻,可以更好的使用有限資源。

符號H可用於范圍,例如,H H(0-7) * * * 代表凌晨0:00到 上午7:59一段時間。你還可以用H代表有或無范圍的區間。

符號H 在一定范圍內可被認為是一個隨機值,但實際上它是任務名稱的一個散列而不是隨機函數。

需要註意的是,月份中的某天-DOM字段,類似於*/3 或者 H/3 的短周期由於月份的天數不固定,在大多數月尾總不會工作。例如,*/3 將會在一個月裡面的第一天、第四天。。。第31天執行,下個月的那天繼續重復執行。散列一般被選擇在1-28天內,所以H/3將會在跑到月底的3-6天內導致空白。(長時間循環將會導致長度不一,但是這種影響也是不明顯的。)

空行和以#開頭的行將會被認為是註釋。

另外,@yearly, @annually, @monthly, @weekly, @daily, @midnight, 和 @hourly也支持別名。這些使用散列系統自動匹配,例如:@hourly 和 H * * * * 一樣代表一個小時內的任何時刻。@midnight實際上代表凌晨0:00到凌晨2:59之間的一段時間。

示例

每隔5分鐘構建一次
H/5 * * * *
每兩小時構建一次
H H/2 * * *
每天中午12點定時構建一次
H 12 * * *
每天下午18點定時構建一次
H 18 * * *
在每個小時的前半個小時內的每10分鐘
H(0-29)/10 * * * *
每兩小時45分鐘,從上午9:45開始,每天下午3:45結束
45 9-16/2 * * 1-5
每兩小時一次,每個工作日上午9點到下午5點(也許是上午10:38,下午12:38,下午2:38,下午4:38)
H H(9-16)/2 * * 1-5

以上就是Jenkins定時構建語法規則及時間設置的詳細內容,更多關於Jenkins定時構建的資料請關註WalkonNet其它相關文章!

推薦閱讀: