quartz
opensymphony提供的强大的开源任务调度框架
spring的默认调度框架,保存恢复调度现场。灵活,强大调度。
使用了 builder调度模式,factory模式,组件模式,链式写法。
三个核心概念:1.调度器(定时定期执行任务) 2.任务 3.触发器
体系结构:1.JobDetail 2.trigger(SimpleTrigger--CronTrigger),触发时间,规则
| |
| |
——————
|
3. scheduler
重要组成:job、jobBuilder、jobdetail、jobstore
体系结构:Trigger、TriggerBuilder、ThreadPool、Scheduler、Calendar(一个Trigger可以和多个calendar关联,以派出或包括某些时间点),jobListener,triggerListener、SchedularListner
interface job:在exeute()方法里面编写业务逻辑的..exeute().类似timerTask的run方法。
job在quartz中的生命周期:1.每次调度器执行Job时,在调用execute方法之前,会创建一个新的Job实例。2.调用完成后,关联的job对象实例会被释放,释放的实例会被垃圾回收机制回收。
jobDetail为job实例提供了许多设置属性还有JobDataMap成员变量属性,用来存储特定Job实例的信息,调度器需要借助JobDetail对象来添加Job实例。4个属性:name、group(默认DEFAULT)、jobClass、jobDataMap。
JobExecutionContext下面存储有JobDataMap
Trigger:-AbstractTrigger- -DailyTimeIntervalTriggerImpl- -CalendarIntervalTrigger- -CronTrigger- -SimpleTrigger
Trigger通用属性:
<1>JobKey <2>StartTime <3>EndTime
jobKey:表示Job实例的标识,触发器被触发时,该指定的job实例会执行。
startTime:首次被触发的时间,类型时java.util.date
endTime:指定触发器不再被触发的时间,类型是java.util.dae