quartz框架(五)-Trigger相关内容

Trigger相关内容

上篇博文,博主介绍了Job的相关内容。本篇博文,博主将介绍Trigger相关的内容。

Trigger

Trigger是触发器的意思,它只定义Trigger相关属性的Get方法。一个Trigger只能关联一个Job,而一个Job可以关联到多个Trigger。

Triigger的相关接口如下:

  1. getKey,Trigger的唯一标识。
  2. getJobKey,关联Job的唯一标识。
  3. getStartTime,开始触发时间。
  4. getEndTime,结束触发时间。
  5. getNextFireTime,获取下一次触发时间。
  6. getFireTimeAfter,用于计算在某个时间点后的下一个触发事件。
  7. mayFireAgain,是否需要触发。触发器触发完成的时候,会调用这个方法判断是否需要再次触发。
  8. getMisfireInstruction,获取失火策略。失火策略是指Trigger没有在合适的时间点进行执行时,程序需要做出的反应,如立即重新执行,并且重复次数不变,

MutableTrigger

前面说到Trigger只是定义了相关属性的Get方法,并没有Set方法。而MutableTrigger接口则定义了相关属性的set方法,如setKey方法。

OperableTrigger

OperableTrigger接口从字面上来说时可操作的Trigger。也就是Trigger被QuartzSchedulerThread获取到之后,在不同情况下需要进行操作的接口。OperableTrigger的相关接口如下:

  1. computeFirstFireTime,计算第一次触发时间。
  2. triggered,trigger被触发时调用的方法。
  3. updateAfterMisfire,对应触发器失火后调用的方法。
  4. executionComplete,触发器本次触发完成时被调用的方法。

SimpleTriggerImpl

SimpleTriggerImpl 实现了OperableTrigger接口,SimpleTriggerImpl的属性如下所示:

  1. startTime,开始时间。
  2. endTime,结束时间。
  3. repeatCount,重复次数。
  4. repeatInterval,重复时间间隔。
  5. timesTriggered,Trigger被触发的次数。

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属性。

博主微信公众号

posted on 2022-03-12 21:43  幕友皎敖奔乾  阅读(207)  评论(0编辑  收藏  举报

导航