国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Quartz.NET總結(jié)(二)CronTrigger和Cron表達式

2019-11-14 13:54:45
字體:
供稿:網(wǎng)友
  Quartz.NET的任務(wù)調(diào)度,主要就是依靠CronTrigger和Cron表達式。Cron是已經(jīng)在UNIX存在了很長一段時間,它有著強大和可靠的調(diào)度能力。CronTrigger類也正是是基于Cron調(diào)度能力。

  CronTrigger使用Cron表達式。它能靈活的設(shè)置各種計劃任務(wù),比如每周一至周五,早上8點執(zhí)行某項任務(wù)。然而雖然Cron表達式功能強大,靈活,但是也很混亂難懂。所以便在這里介紹Cron表達式相關(guān)的配置。希望大家?guī)椭蠹铱焖倮斫狻?br />
Cron格式

  Cron表達式被用來配置CronTrigger實例。Cron表達式是一個由6,7個域(子表達式)和空格組成的字符串。每個子表達式都描述了一個單獨的日程細節(jié)
是否強制
允許值
允許特殊字符
Seconds
YES
0-59
, - * /
Minutes
YES
0-59
, - * /
Hours
YES
0-23
, - * /
Day of month
YES
1-31
, - * ? / L W
Month
YES
1-12 or JAN-DEC
, - * /
Day of week
YES
1-7 or SUN-SAT
, - * ? / L #
Year
NO
empty, 1970-2099
, - * /
所以,比如一個cron表達式字符串"0 0 10 ? * MON",這表示“每周一的中午12:00”。

  上面的列表,可以清楚的看出,所有的域中的值都有特定的合法范圍,每個域都可以單獨配置。例如:Day of week(周中的天)必須有值(SUN—SAT)或是使用特殊字符,所以"0 0 12 ? * MON",就可以改成為"MON-FRI", "MON, WED, FRI"甚至是"MON-WED,SAT"。
 
特殊字符說明

'*' 表示域中“每個”。比如在"Minutes"域中的*表示每分鐘。

'?' 用在day-of-month及day-of-week域中,表示“沒有指定值”。這對于需要指定一個或者兩個域的值而不需要對其他域進行設(shè)置來說相當(dāng)有用。例如,我想在一個月的某一天(例如,第十),而不在乎具體是哪一天,我會把“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"。但是,這個字符跟在別的值后面,則表示"當(dāng)月的最后的周XXX"。例如:"6L" 或者 "FRIL"都表示本月的最后一個周五。同時,也可以用來指定第某個月的最后一天的倒數(shù)第幾天,如“L-3”表示某月最后一天的倒數(shù)第三天。注意:當(dāng)使用'L'選項時,最重要的是不要指定列表或者值范圍,否則會導(dǎo)致混亂。

'W' 用于day-of-week域中指定給定日(星期一星期五)最近的一天。例如:"15W",則表示“距離月中15號最近的工作日是周幾”。

'#' 表示本月中的第幾個周幾。例如:day-of-week域中的"6#3" 或者 "FRI#3"表示“本月中第三個周五”。

相關(guān)實例

表達式
含義
0 0 12 * * ?
每天中午12點
0 15 10 ? * *
每天上午10點15
0 15 10 * * ?
每天上午10點15
0 15 10 * * ? *
每天上午10點15
0 * 14 * * ?
每天下午2點到2點59的每分鐘
0 0/5 14 * * ?
每天下午2點到2點59的每5分鐘
0 0/5 14,18 * * ?
每天下午2點到2點59和6點到6點55的每5分鐘
0 0-5 14 * * ?
每天下午2點到2點05的每分鐘
0 10,44 14 ? 3 WED
3月份每周三下午2點10和2點44
0 15 10 ? * MON-FRI
每周一到周五的上午10點15
0 15 10 15 * ?
每個月第15天的上午10點15
0 15 10 L * ?
每個月最后一天的上午10點15
0 15 10 L-2 * ?
每個月最后一天的倒數(shù)第二天的上午10點15
0 15 10 ? * 6L
每月的最后一個周五的上午10點15
0 15 10 ? * 6L 2002-2005
2002年到2005年的每月的最后一個周五的上午10點15
0 15 10 ? * 6#3
每月的第三個周五上午10點15
0 0 12 1/5 * ?
每月的第一天開始,每5天的中午12點
0 11 11 11 11 ?
每年的11月11日11點11分
注意:'?' and '*' 在 day-of-week和day-of-month的影響

參考鏈接:http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湖州市| 图片| 涿鹿县| 锡林浩特市| 库伦旗| 荣昌县| 台北市| 舒城县| 莱芜市| 株洲市| 高安市| 宜黄县| 察哈| 玉环县| 孟村| 海南省| 庆元县| 图们市| 紫阳县| 光泽县| 宜都市| 盐亭县| 静宁县| 宕昌县| 江川县| 柳林县| 密云县| 右玉县| 尚义县| 慈利县| 诏安县| 化隆| 柳江县| 新巴尔虎左旗| 封开县| 西丰县| 衡南县| 专栏| 苏尼特左旗| 平和县| 滨州市|