Quartz 器
Quartz 提供了三种类型的器:Job,Trigger,和Scheduler.
器是作为扩展点存在的.
Quartz 器是扩展点,可以扩展框架并定制来做特定的事情。跟Spring,Hibernate,Servlet器类似.
实现
1. 创建一个 Java 类,实现器接口
2. 用你的应用中特定的逻辑实现器接口的所有方法
3. 注册器
全局和非全局器
JobListener 和 TriggerListener 可被注册为全局或非全局器。一个全局器能接收到所有的 Job/Trigger 的事件通知。
而一个非全局器只能接收到那些在其上已注册了器的 Job 或 Triiger 的事件。
作者:James House描述全局和非全局器
全局器是主动意识的,它们为了执行它们的任务而热切的去寻找每一个可能的事件。通常,全局器要做的工作不用指定到特定的 Job 或 Trigger。
非全局器一般是被动意识的,它们在所关注的 Trigger 激发之前或是 Job 执行之前什么事也不做。因此,非全局的器比起全局器而言更适合于修改或增加 Job 执行的工作。
类似装饰设计模式
Job 事件
org.quartz.JobListener 接口包含一系列的方法,它们会由 Job 在其生命周期中产生的某些关键事件时被调用
public intece JobListener {
//命名jobListener 只对非全局器有效
public String getName();
//Scheduler 在 JobDetail 将要被执行时调用这个方法。
public void jobToBeExecuted(JobExecutionContext context);
//Scheduler 在 JobDetail 即将被执行,但又被否决时调用这个方法。
public void jobExecutionVetoed(JobExecutionContext context);
//Scheduler 在 JobDetail 被执行之后调用这个方法。
public void jobWasExecuted(JobExecutionContext context,JobExecutionException jobException);
}

图7 job listener参与job的执行生命周期
注册全局器
scheduler.addGlobalJobListener(jobListener);
注册非全局器(依次完成,顺序不能颠倒)
scheduler.addJobListener(jobListener); jobDetail.addJobListener(jobListener.getName()); //如果已经存在jobDetail则覆盖. scheduler.addjob(jobDetail,true);
Trigger 事件
org.quartz.TriggerListener 接口定义Trigger器
public intece TriggerListener {
//命名triggerListener 只对非全局器有效
public String getName();
//当与器相关联的 Trigger 被触发,Job 上的 execute() 方法将要被执行时,调用这个方法。
//在全局TriggerListener 情况下,这个方法为所有 Trigger 被调用。(不要做耗时操作)
public void triggerFired(Trigger trigger, JobExecutionContext context);
//在 Trigger 触发后,Job 将要被执行时由调用这个方法。
//TriggerListener给了一个选择去否决 Job 的执行。假如这个方法返回 true,这个 Job 将不会为此次 Trigger 触发而得到执行。
public boolean vetoJobExecution(Trigger trigger, JobExecutidonContext context);
// Scheduler 调用这个方法是在 Trigger 错过触发时。
// JavaDoc 指出:你应该关注此方法中持续时间长的逻辑:在出现许多错过触发的 Trigger 时,长逻辑会导致骨牌效应。你应当保持这上方法尽量的小
public void triggerMisfired(Trigger trigger);
//Trigger 被触发并且完成了Job的执行时调用这个方法。
public void triggerComplete(Trigger trigger, JobExecutionContext context, int triggerInstructionCode);
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29777-10.html
是个男人就不会像这样的想法
那是有毛主席