与Trigger相关的事件有:触发器触发,触发器的不触发(参考先前章节),触发器完成。
public interface TriggerListener {
public String getName();
public void triggerFired(Trigger trigger, JobExecutionContext context);
public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context);
public void triggerMisfired(Trigger trigger);
public void triggerComplete(Trigger trigger, JobExecutionContext context,
int triggerInstructionCode);
}
与job相关的事件有:job准备执行,job执行完毕。
public interface JobListener {
public String getName();
public void jobToBeExecuted(JobExecutionContext context);
public void jobExecutionVetoed(JobExecutionContext context);
public void jobWasExecuted(JobExecutionContext context,
JobExecutionException jobException);
}
使用Listeners
创建一个监听器,就是创建一个实现了org.quartz.TriggerListener 和 org.quartz.JobListener接口的对象。在运行的期间用调度器注册监听器,必须要给它提供一个名字。监听器能够注册成为全局的或者不是全局的,全局监听器接受所有的事件,而非全局的则仅接受指定给triggers/jobs了的事件。
监听器是在运行期间被调度器注册的,他们没有伴随jobs和triggers储存在JobStore里。Jobs和triggers仅储存和它们相关的监听器的名字。因此,每次程序运行时,监听器需要被调度器再次注册。
scheduler.addGlobalJobListener(myJobListener);
scheduler.addJobListener(myJobListener);
监听器在Quartz并不是经常使用的。