小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Quartz中的時(shí)間表達(dá)式介紹和常用表達(dá)式

 kangyongsun 2019-11-25

Quartz.NET是一個(gè)開源的作業(yè)調(diào)度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#寫成,可用于winform和asp.net應(yīng)用中。它提供了巨大的靈活性而不犧牲簡單性。你能夠用它來為執(zhí)行一個(gè)作業(yè)而創(chuàng)建簡單的或復(fù)雜的調(diào)度。它有很多特征,如:數(shù)據(jù)庫支持,集群,插件,支持cron-like表達(dá)式等等
比如:表示式:  0 0 12 * * ?    表示:每天的12點(diǎn)調(diào)用

1、特殊符號(hào)的介紹

Cron表達(dá)式的時(shí)間字段除允許設(shè)置數(shù)值外,還可使用一些特殊的字符,提供列表、范圍、通配符等功能,細(xì)說如下

1)星號(hào)(*):可用在所有字段中,表示對應(yīng)時(shí)間域的每一個(gè)時(shí)刻,例如,*在分鐘字段時(shí),表示“每分鐘”;

2)問號(hào)(?):該字符只在日期和星期字段中使用,它通常指定為“無意義的值”,相當(dāng)于點(diǎn)位符;

3)減號(hào)(-):表達(dá)一個(gè)范圍,如在小時(shí)字段中使用“10-12”,則表示從10到12點(diǎn),即10,11,12;

4)逗號(hào)(,):表達(dá)一個(gè)列表值,如在星期字段中使用“MON,WED,FRI”,則表示星期一,星期三和星期五;

5)斜杠(/):x/y表達(dá)一個(gè)等步長序列,x為起始值,y為增量步長值。如在分鐘字段中使用0/15,則表示為0,15,30和45秒,

  而5/15在分鐘字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y;

 

2、Quartz Cron 表達(dá)式支持到七個(gè)域

ps: 月份和星期的名稱是不區(qū)分大小寫的。FRI 和 fri 是一樣的,

域之間有空格分隔,這和 UNIX cron 一樣。無可爭辯的,我們能寫的最簡單的表達(dá)式看起來就是這個(gè)了:

* * * ? * *這個(gè)表達(dá)會(huì)每秒鐘(每分種的、每小時(shí)的、每天的)激發(fā)一個(gè)部署的 job

 

3、特殊符號(hào)

1)星號(hào)(*):指示著你想在這個(gè)域上包含所有合法的值。例如,在月份域上使用星號(hào)意味著每個(gè)月都會(huì)觸發(fā)這個(gè) trigger。

例如:0 * 17 * * ?   意義:每天從下午5點(diǎn)到下午5:59中的每分鐘激發(fā)一次 trigger。

2)問號(hào)(?):? 號(hào)只能用在日和周域上,但是不能在這兩個(gè)域上同時(shí)使用。你可以認(rèn)為? 字符是 "我并不關(guān)心在該域上是什么值。"

這不同于星號(hào),星號(hào)是指示著該域上的每一個(gè)值。? 是說不為該域指定值。

例如:0 10,44 14 ? 3 WEB  意義:在三月中的每個(gè)星期三的下午 2:10 和 下午 2:44 被觸發(fā)

3)逗號(hào)(,): 逗號(hào) (,) 是用來在給某個(gè)域上指定一個(gè)值列表的。

例如: 0 0,15,30,45 * * * ?  意義:每個(gè)15秒觸發(fā)一次trigger

4)斜杠(/): 斜杠 (/) 是用于時(shí)間表的遞增的。我們剛剛用了逗號(hào)來表示每15分鐘的遞增,但是我們也能寫成這樣0/15。

例如:0/15 0/30 * * * ?  意義:在整點(diǎn)和半點(diǎn)時(shí)每15秒觸發(fā) trigger。

5)中劃線(-):中劃線 (-) 用于指定一個(gè)范圍。例如,在小時(shí)域上的 3-8 意味著 "3,4,5,6,7 和 8 點(diǎn)。" 域的值不允許回卷,所以像 50-10 這樣的值是不允許的

例如: 0 45 3-8 ? * *   意義:在上午的3點(diǎn)至上午的8點(diǎn)的45分時(shí)觸發(fā) trigger

6)L字母:L 說明了某域上允許的最后一個(gè)值。它僅被日和周域支持。當(dāng)用在日域上,表示的是在月域上指定的月份的最后一天。例如,當(dāng)月域上指定了JAN 時(shí),

在日域上的L會(huì)促使 trigger 在1月31號(hào)被觸發(fā)。假如月域上是SEP,那么 L 會(huì)預(yù)示著在9月30號(hào)觸發(fā)。換句話說,就是不管指定了哪個(gè)月,都是在相應(yīng)月份的時(shí)最后一天觸發(fā) trigger。

例如: 0 0 8 L * ?    意義 是在每個(gè)月最后一天的上午 8:00 觸發(fā) trigger。在月域上的 * 說明是 "每個(gè)月"。

當(dāng) L 字母用于周域上,指示著周的最后一天,就是星期六 (或者數(shù)字7)。所以如果你需要在每個(gè)月的最后一個(gè)星期六下午的 11:59 觸發(fā) trigger,你可以用這樣的表達(dá)式0 59 23 ? * L。
當(dāng)使用于周域上,你可以用一個(gè)數(shù)字與 L 連起來表示月份的最后一個(gè)星期 X。例如,表達(dá)式 0 0 12 ? * 2L 說的是在每個(gè)月的最后一個(gè)星期一觸發(fā) trigger

7)W字母:W 字符代表著平日 (Mon-Fri),并且僅能用于日域中。它用來指定離指定日的最近的一個(gè)平日。大部分的商業(yè)處理都是基于工作周的,所以 W 字符可能是非常重要的。

例如,日域中的15W 意味著 "離該月15號(hào)的最近一個(gè)平日。" 假如15號(hào)是星期六,那么 trigger 會(huì)在14號(hào)(星期五)觸發(fā),因?yàn)樾瞧谒谋刃瞧谝唬ㄟ@個(gè)例子中是17號(hào))離15號(hào)更近。

(譯者Unmi注:不會(huì)在17號(hào)觸發(fā)的,如果是15W,可能會(huì)是在14號(hào)(15號(hào)是星期六)或者15號(hào)(15號(hào)是星期天)觸發(fā),也就是只能出現(xiàn)在鄰近的一天,如果15號(hào)當(dāng)天為平日直接就會(huì)當(dāng)日執(zhí)行)。

W只能用在指定的日域?yàn)閱翁?,不能是范圍或列表值?/span>

8)#號(hào):# 字符僅能用于周域中。它用于指定月份中的第幾周的哪一天。例如,如果你指定周域的值為6#3,它意思是某月的第三個(gè)周五 (6=星期五,#3意味著月份中的第三周)。

另一個(gè)例子2#1意思是某月的第一個(gè)星期一 (2=星期一,#1意味著月份中的第一周)。注意,假如你指定#5,然而月份中沒有第 5 周,那么該月不會(huì)觸發(fā)

 

4、常用Corn表達(dá)式

1)分鐘Corn表達(dá)式

2)日上Corn表達(dá)式

3)周、月表達(dá)式

參考資料來源于:http://www.cnblogs.com/GarfieldTom/p/3746290.html

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多