Job接口非常容易实现,只有一个execute方法。相当于TimerTask方法,在里面编写业务逻辑。
Job在任务定时调度中的生命周期:每次调度器执行job,它在调用execute方法前会创建一个新的Job实例。当调用完成后,关联的job对象实例会被释放,释放的实例会被垃圾回收机制回收。
JobDetail为Job实例提供许多设置属性,以及JobDataMap成员变量属性,它用来存储特定Job实例的状态信息,调度器需要借助JobDetail对象来添加Job实例。
重要属性:
1.name 任务的名称 必须
2.group 任务所在的组 必须 不写为默认组
3.jobClass 任务的实现类 必须
4.jobDataMap 实现任务的传参
JobExecutionContext :
当Scheduler调用一个Job就会将JobExecutionContext传递给Job的execute()方法;
job通过JobExecutionContext对象访问到Quartz运行时候的环境及Job本身的明细数据。
JobDataMap:在进行任务调度时JobDataMap存储,在JobExecutionContext中,非常方便获取;
JobDataMap可以用来装载任何可序列化的数据对象,当Job实例对象被执行时这些参数对象会传递给它;
JobDataMap实现了jdkde Map接口,并且添加了一些非常方便的方法用来存储基本数据类型。
两种方式获取JobDataMap:
1.从Map中直接获取
2.key的set和get方法取
Trigger:Quartz中的触发器,用来告诉调度器程序作业什么时候触发。即Trigger对象是用来触发执行Job的
通用属性;
JobKey:job实例的标识,触发器被触发时,该指定的job实例会执行。
StartTime:表示触发器的时间表首次被触发的时间,类型是Java.util.Date
EndTime:指定触发器不被触发的时间,类型是Java.util.Date
scheduler任务调度器
schedulerJob(JobDetail,Trigger trigger);绑定JobDetail实例和触发器trigger 返回值是最近一次即将执行的时间
start() 启动scheduler
standby() 让scheduler暂时挂起
shutdown(true/flase) 完全关闭scheduler

387

被折叠的 条评论
为什么被折叠?



