請問 在cron運算式中 周幾中用 * 和 ? 的區別 是什么,查了一些資料,說的都不清楚,比如其中一個資料中就說
Cron運算式是一個字串,字串以5或6個空格隔開,分為6或7個域,每一個域代表一個含義,Cron有如下兩種語法格式:
Seconds Minutes Hours DayofMonth Month DayofWeek Year或
。。。。。
每一個域都使用數字,但還可以出現如下特殊字符,它們的含義是:
(1) *:表示匹配該域的任意值,假如在Minutes域使用*, 即表示每分鐘都會觸發事件。
(2) ?:只能用在DayofMonth和DayofWeek兩個域。它也匹配域的任意值,但實際不會。因為DayofMonth和 DayofWeek會相互影響。
例如想在每月的20日觸發調度,不管20日到底是星期幾,則只能使用如下寫法: 13 13 15 20 * ? , 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期幾都會觸發,實際上并不是這樣。
實際上并不是這樣,實際情況會是啥樣,資料中沒有說。請問大家如果最后一位使用 * ,實際的情況會是什么樣?
uj5u.com熱心網友回復:
*表示所有的值都必須要運行,?表示不關心這個值是什么,忽略這個條件,從結果上看,他們倆沒啥區別,但是如果組合使用時,有時候會出現沖突。比如說,13 13 15 20 * ?,這個運算式,每個月的20日15時13分13秒觸發,但是如果改成13 13 15 20 * *,每個月每周一到周日的20日15時13分13秒觸發,這個條件就會讓系統崩潰,因為20日是特定的一天,不可能每個周一到每個周日都是20天,所以要么是13 13 15 20 * ?(每個月的20日15時13分13秒觸發),要么是13 13 15 ? * *(每個月的周一到周日15時13分13秒觸發,其實說白了等價于13 13 15 * * ?)
uj5u.com熱心網友回復:
非常非常的感謝。
uj5u.com熱心網友回復:
一個是條件,一個是占位轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/283707.html
標籤:Web 開發
