Quartz.net官方開(kāi)發(fā)指南 第五課: SimpleTrigger如果需要讓任務(wù)只在某個(gè)時(shí)刻執(zhí)行一次,,或者,在某個(gè)時(shí)刻開(kāi)始,,然后按照某個(gè)時(shí)間間隔重復(fù)執(zhí)行,,簡(jiǎn)單地說(shuō),,如果你想讓觸發(fā)器在 通過(guò)這樣的描述,,你可能很驚奇地發(fā)現(xiàn)SimpleTrigger包括這些屬性:開(kāi)始時(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ì)算開(kāi)始時(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ù)屬性,。 One of SimpleTrigger's Constructors public SimpleTrigger(string name,
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 SimpleTrigger trigger = new SimpleTrigger("myTrigger",
null, DateTime.Now.AddSeconds(10), null, 0, 0L); SimpleTrigger Example 2 - Create a trigger that fires immediately, then repeats every 60 seconds, forever SimpleTrigger trigger2 = new SimpleTrigger("myTrigger",
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 SimpleTrigger trigger = new SimpleTrigger("myTrigger",
"myGroup", DateTime.Now, DateTime.Now.AddSeconds(40), SimpleTrigger.REPEAT_INDEFINITELY, 10 * 1000); “未觸發(fā)”發(fā)生時(shí),,SimpleTrigger有幾個(gè)指令可以用來(lái)通知Quartz進(jìn)行相關(guān)處理,。(“未觸發(fā)”在上節(jié)課中介紹過(guò)了)。這些指令以常量形式定義在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ā)器都是缺省的,。 |
|
來(lái)自: 唐伯龍 > 《Quartz.Net》