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