Quartz使用指南(二)-----作业和触发器Job&Trigger

我们可以使Scheduler简单地执行一个实现了Job接口的Java组件,Job接口定义如下:

package org.quartz;
public interface Job {
   public void execute(JobExecutionContext context)
     throws JobExecutionException;
  }

JobTrigger执行触发后,Scheduler将调用执行execute(…)方法,JobExecutionContext对象是该方法的参数,为Job实例提供了一个执行该JobSchedulerhandle、一个触发该execute方法的TriggerhandleJobJobDetail对象和一些其他运行时的环境变量值。

JobDetail对象是在Quartz的客户端(我们的程序)在Job被关联加入到Scheduler时创建的,JobDetail包含了Job的各种属性值和JobDataMapJobDataMap中存放了与之相关的Job类实例的状态信息。

Trigger对象是用于触发Job的执行,为了调度一个作业,我们需要实例化一个Trigger,并根据作业的需求设置该Trigger的属性,Trigger有两种:SimpleTriggerCronTrigger

SimpleTrigger只适用于在规定的时刻触发Job的执行,或在规定的期限内按一定的时间间隔重复触发Job的执行;当我们需要基于日期类型(如:每星期5中午或每个月的第1010:15)的作业调度时,需要用到CronTrigger

QuartzJobTrigger之间是相互独立的,可以对JobTrigger分别进行各自的定义设置,然后根据需要进行组合,这样就可以实现一个Job可以与许多不同的Trigger相关联,一个Trigger也可以关联到不同的Job上,达到了松散耦合的目的,当需要更改一个JobTrigger时,只需要修改或替换对应的Trigger就可以了,而无须重新定义一个与该Job关联的Scheduler

猜你喜欢

转载自it586.iteye.com/blog/1701780