初识:一旦一个scheduler被实例化了,它就能够被start,进入运行状态,也能够被shutdown。这也是一个scheduler的生命周期(从被实例化到被shutdown)。这里须要注意,一旦scheduler被shutdown,就不能再从新start了,想要从新start,必须从新实例化。spa
一个scheduler被实例化以后,就能够添加、移除Job、Trigger甚至暂停一个Trigger等。可是,只有在start以后,Trigger才能够生效(come into play)。对象
主要接口:接口
Job接口:生命周期
public interface Job { void execute(JobExecutionContext context) throws JobExecutionException; }
咱们写本身的job时须要实现的接口。io
JobExecutionVontext参数携带的信息:scheduler的引用、trigger的引用、JobDetail对象以及其余一些信息。变量
JobDetail接口:引用
在scheduler添加job时建立,它包含了Job的一些信息,以及一个JobDataMap,JobDataMap存储了job的成员变量。im
Trigger接口:时间
触发Job时须要,经过trigger能够使得job执行,Quartz自带了几种不一样的触发方式,可是经常使用的是SimpleTrigger以及CronTrigger。co
SimpleTrigger适用于在给定的时间只执行一次或者重复执行N次或者延迟T执行。
CronTrigger更适用于与日历相关的,好比每周一的上午十点执行。
在Quartz中,咱们称JobDetail为 “JobDetail实例” 或 “Job的定义”,称Job为 “Job实例” 或 “Job定义的实例”