Quartz是一个完全由java编写的开源作业调度框架
流程实现
// 1.自定义任务调度类实现job接口
// 2.提供Job信息->JobBuilder->JobDetail实现类
// 3.提供Trigger信息->TriggerBuilder->Trigger实现类
// 4.调度器schuduleJob(jobDetail,trigger);
基础接口
Job : 作业调度类,业务逻辑存放处
JobDetail : 说明Job属性,通过JobBuilder产生,供调度器使用
Trigger : 触发器,设置触发参数
Scheduler : 调度器,利用JobDetail和Trigger实现任务调度
Job
Job是Quartz的作业接口,只有一个execute执行方法
类实现Job接口,重写execute方法,即可实现作业调度环节
public class JobImpl implements Job{
@Override
public void execute(JobExecutionContext context) throws JobEecutionException {
// TODO
}
}
JobDetail
// jobDetail接口 用于获取job信息
// jobKey : [group job组别][name job名称]
// jobDataMap : job数据信息
// jobClass : job实现类
Trigger
// trigger接口 用于设置获取触发器信息
// startTime : 首次触发时间
// endTime : 结束触发时间
Scheduler
// 触发器接口 绑定trigger和jobDetail
// start() 启动
// standby() 挂起
// shutdown() 关闭
工厂类
JobBuilder
// JobBuilder:JobDetail的工厂类
// key : jobkey [group,name]
// description : job描述
// jobClass : job类
// newJob(Class< ? extend Job>) 设置 jobClass
// build 生产jobDetail
// withIdentity() 设置jobKey
// usingJobData 设置jobDataMap
// 演示
JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobKey).usingJobData(jobDataMap).build();
TriggerBudiler
// TriggerBuilder:Trigger的工厂类
// key : Trigger [group,name]
// calendarName : 日历名称
// description : trigger描述
// startTime : 首次触发时间
// endTime : 结束触发时间
// priority : 优先级
// T build 生产trigger
// withIdentity() 设置trigger
// modifiedByCalendar() 改日历名称
// forJob() 设置jobKey
// usingJobData 设置jobDataMap