quartz框架(五)-Trigger相關內容

Trigger相關內容

上篇博文,博主介紹了Job的相關內容。本篇博文,博主將介紹Trigger相關的內容。

Trigger

Trigger是觸發(fā)器的意思,它只定義Trigger相關屬性的Get方法。一個Trigger只能關聯(lián)一個Job,而一個Job可以關聯(lián)到多個Trigger。

Triigger的相關接口如下:

  1. getKey,Trigger的唯一標識。
  2. getJobKey,關聯(lián)Job的唯一標識。
  3. getStartTime,開始觸發(fā)時間。
  4. getEndTime,結束觸發(fā)時間。
  5. getNextFireTime,獲取下一次觸發(fā)時間。
  6. getFireTimeAfter,用于計算在某個時間點后的下一個觸發(fā)事件。
  7. mayFireAgain,是否需要觸發(fā)。觸發(fā)器觸發(fā)完成的時候,會調用這個方法判斷是否需要再次觸發(fā)。
  8. getMisfireInstruction,獲取失火策略。失火策略是指Trigger沒有在合適的時間點進行執(zhí)行時,程序需要做出的反應,如立即重新執(zhí)行,并且重復次數不變,

MutableTrigger

前面說到Trigger只是定義了相關屬性的Get方法,并沒有Set方法。而MutableTrigger接口則定義了相關屬性的set方法,如setKey方法。

OperableTrigger

OperableTrigger接口從字面上來說時可操作的Trigger。也就是Trigger被QuartzSchedulerThread獲取到之后,在不同情況下需要進行操作的接口。OperableTrigger的相關接口如下:

  1. computeFirstFireTime,計算第一次觸發(fā)時間。
  2. triggered,trigger被觸發(fā)時調用的方法。
  3. updateAfterMisfire,對應觸發(fā)器失火后調用的方法。
  4. executionComplete,觸發(fā)器本次觸發(fā)完成時被調用的方法。

SimpleTriggerImpl

SimpleTriggerImpl 實現了OperableTrigger接口,SimpleTriggerImpl的屬性如下所示:

  1. startTime,開始時間。
  2. endTime,結束時間。
  3. repeatCount,重復次數。
  4. repeatInterval,重復時間間隔。
  5. timesTriggered,Trigger被觸發(fā)的次數。

ScheduleBuilder

ScheduleBuilder是時間表構造器,它用戶構造出實現了MutableTrigger的對象。ScheduleBuilder的源碼如下所示:

public abstract class ScheduleBuilder<T extends Trigger>  {
    protected abstract MutableTrigger build();
}

SimpleScheduleBuilder

SimpleScheduleBuilder是簡單的時間表構造器,它會在build方法中返回SimpleTriggerImpl實例,因此它可以定義SimpleTriggerImpl的屬性,如withRepeatCount,repeatForever就是修改repeatCount和repeatInterval屬性。

TriggerBuilder

TriggerBuilder接口也是返回實現了MutableTrigger接口的對象,它內部還有一個
ScheduleBuilder的引用。TriggerBuilder只定義了通用的屬性(也就是通用的骨架),如StartTime,EndTime和Key等屬性。其它的可變屬性則交給了對應的ScheduleBuilder實現類來設置。

什么是可變屬性?

  1. 對于SimpleScheduleBuilder來說,它需要repeatCount和repeatInterval屬性。
  2. 對于CornTriggerBuilder來說,它需要cronExpression屬性。

博主微信公眾號

<img src="https://gitee.com/chenhaogit/blogimages/raw/master/xsj/wzgzh-8cm.jpg" style="float:right"/>

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容