您好,登錄后才能下訂單哦!
本篇內容介紹了“Cron表達式是怎樣的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Quartz.NET的任務調度,主要就是依靠CronTrigger和Cron表達式。Cron是已經在UNIX存在了很長一段時間,它有著強大和可靠的調度能力。CronTrigger類也正是是基于Cron調度能力。
CronTrigger使用Cron表達式。它能靈活的設置各種計劃任務,比如每周一至周五,早上8點執行某項任務。然而雖然Cron表達式功能強大,靈活,但是也很混亂難懂。
Cron表達式被用來配置CronTrigger實例。Cron表達式是一個由6,7個域(子表達式)和空格組成的字符串。
所以,比如一個cron表達式字符串"0 0 10 ? * MON",這表示“每周一的中午10:00”。
上面的列表,可以清楚的看出,所有的域中的值都有特定的合法范圍,每個域都可以單獨配置。例如:Day of week(周中的天)必須有值(SUN—SAT)或是使用特殊字符,所以"0 0 10 ? * MON",就可以改成為"MON-FRI", "MON, WED, FRI"甚至是"MON-WED,SAT"。
'*' :表示域中“每個”。比如在"Minutes"域中的*表示每分鐘。
'?' :用在day-of-month及day-of-week域中,表示“沒有指定值”。這對于需要指定一個或者兩個域的值而不需要對其他域進行設置來說相當有用。例如,我想在一個月的某一天(例如,第十),而不在乎具體是哪一天,我會把“10”放在day-of-month 域,然后“?”在day-of-week里。
'-' :指定范圍,例如,“10-12”在Hours域,表示10點到12點。
',' :指定附加值,例如,“MON,WED,FRI”在day-of-week域中,表示“星期一,星期三和星期五”。
'/' :沒有具體的值,用來用于指定值的增量,例如, 如果在Seconds域中,'0/15',它表示“從0開始,每隔15秒”。
'L' :只用在day-of-month及day-of-week中,這個字符是"last"的簡寫,但是在兩個域中的意義不同。例如,在day-of-month域中的"L"表示本月的最后一天,即,一月的31日,非閏年的二月的28日。如果它用在day-of-week中,則表示"7"或者"SAT"。但是,這個字符跟在別的值后面,則表示"當月的最后的周XXX"。例如:"6L" 或者 "FRIL"都表示本月的最后一個周五。同時,也可以用來指定第某個月的最后一天的倒數第幾天,如“L-3”表示某月最后一天的倒數第三天。注意:當使用'L'選項時,最重要的是不要指定列表或者值范圍,否則會導致混亂。
'W' :用于day-of-week域中指定給定日(星期一星期五)最近的一天。例如:"15W",則表示“距離月中15號最近的工作日是周幾”。
'#' :表示本月中的第幾個周幾。例如:day-of-week域中的"6#3" 或者 "FRI#3"表示“本月中第三個周五”。
注意:'?' and '*' 在 day-of-week和day-of-month的影響
“Cron表達式是怎樣的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。