Quartz.net官方開發(fā)指南 第五課: SimpleTrigger
如果需要讓任務(wù)只在某個(gè)時(shí)刻執(zhí)行一次,或者,在某個(gè)時(shí)刻開始,然后按照某個(gè)時(shí)間間隔重復(fù)執(zhí)行,簡(jiǎn)單地說,如果你想讓觸發(fā)器在
通過這樣的描述,你可能很驚奇地發(fā)現(xiàn)SimpleTrigger包括這些屬性:開始時(shí)間,結(jié)束時(shí)間,重復(fù)次數(shù),重復(fù)間隔。所有這屬性都是你期望它所應(yīng)具備的,只有end-time屬性有一些條目與之關(guān)聯(lián)。
重復(fù)次數(shù)可能是0,正數(shù)或者一個(gè)常量值SimpleTrigger.REPEAT_INDEFINITELY。重復(fù)間隔時(shí)間屬性可能是0,正的long型,這個(gè)數(shù)字以毫秒為單位。注意:如果指定的重復(fù)間隔時(shí)間是0,那么會(huì)導(dǎo)致觸發(fā)器按照‘重復(fù)數(shù)量’定義的次數(shù)并發(fā)觸發(fā)(或者接近并發(fā))。
Quartz.TriggerUtils類對(duì)處理這樣的循環(huán)也提供了很多支持。
EndTime(如果這個(gè)屬性被設(shè)置)屬性會(huì)覆蓋重復(fù)次數(shù)屬性,這對(duì)創(chuàng)建一個(gè)每隔10秒就觸發(fā)一次直到某個(gè)時(shí)間結(jié)束的觸發(fā)器非常有用,這就可以不計(jì)算開始時(shí)間和結(jié)束時(shí)間之間的重復(fù)數(shù)量。也可以指定一個(gè)結(jié)束時(shí)間,然后使用REPEAT_INDEFINITELY作為重復(fù)數(shù)量。(甚至可以指定一個(gè)大于結(jié)束時(shí)間之前實(shí)際重復(fù)次數(shù)的整數(shù)作為重復(fù)次數(shù))。一句話,EndTime屬性控制權(quán)高于重復(fù)次數(shù)屬性。
SimpleTrigger有幾個(gè)不同的構(gòu)造函數(shù),下面我們來看看這結(jié)果構(gòu)造函數(shù):
One of SimpleTrigger's Constructors
string group,
DateTime startTime,
NullableDateTime endTime endTime,
int repeatCount,
long repeatInterval)
SimpleTrigger Example 1 - Create a trigger that fires exactly once, ten seconds from now
null,
DateTime.Now.AddSeconds(10),
null,
0,
0L);
SimpleTrigger Example 2 - Create a trigger that fires immediately, then repeats every 60 seconds, forever
null,
DateTime.Now,
null,
SimpleTrigger.REPEAT_INDEFINITELY,
60 * 1000);
SimpleTrigger Example 3 - Create a trigger that fires immediately, then repeats every 10 seconds until 40 seconds from now
"myGroup",
DateTime.Now,
DateTime.Now.AddSeconds(40),
SimpleTrigger.REPEAT_INDEFINITELY,
10 * 1000);
SimpleTrigger Misfire Instructions——SimpleTrigger的未觸發(fā)指令
“未觸發(fā)”發(fā)生時(shí),SimpleTrigger有幾個(gè)指令可以用來通知Quartz進(jìn)行相關(guān)處理。(“未觸發(fā)”在上節(jié)課中介紹過了)。這些指令以常量形式定義在SimpleTrigger本身,這些指令如下:
Misfire Instruction Constants of SimpleTrigger
MISFIRE_INSTRUCTION_FIRE_NOW
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT
MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT
回顧前面的課程你可以知道,每個(gè)觸發(fā)器都有一個(gè)Trigger.MISFIRE_INSTRUCTION_SMART_POLICY指令可用,并且,這個(gè)指令對(duì)于每個(gè)類型的觸發(fā)器都是缺省的。
posted on 2008-10-16 14:12 找個(gè)美女做老婆 閱讀(933) 評(píng)論(0) 編輯 收藏