文档
https://www.w3cschool.cn/quartz_doc/quartz_doc-2put2clm.html
核心类
Scheduler,调度器;ScheduleBuilder
Trigger,触发器;TriggerBuilder
Job、JobDetail,工作、工作实例;JobBuilder
Job、JobDetail
Job类实现Job接口,实现逻辑。通过JobDataMap获取数据。
JobDetail为Job类执行实例,usingJobData()传入状态数据。
JobDetail jd = JobBuilder.newJob(AJob.class)
.withIdentity()
//传入值需可序列化
.usingJobData()
.build();
Job类获取数据
1,声明成员变量、setter方法;通过JobFactory获取JobDataMap值。
2,通过JobExecutionContext获取。
JobDataMap map = context.getJobDetail().getJobDataMap();
JobStore
跟踪调度程序的所有“工作数据”:jobs,triggers,日历等。
RAMJobStore(默认)、JDBC类JobStore、TerracottaJobStore
自动恢复,手动添加时需判定无对应的Trigger。
Trigger
常用:SimpleTrigger、CronTrigger
TriggerBuilder.newTrigger()
Trigger–Job,多对一
Scheduler
工厂类:StdSchedulerFactory、DirectSchedulerFactory
new StdSchedulerFactory().getScheduler();
SpringBoot Quatz
1,导包:quatz、quatz-jobs、spring-context-support
2,JobFactory bean,继承SpringBeanJobFactory,重写createJobInstance();调用父类方法构建job,而后托管给ApplicationContext,使Job类可通过注解注入bean。建议使用匿名内部类实现。
3,SchedulerFactoryBean bean,new实例后,设置JobFactory为2值,设置其他参数。
4,实现Job接口,注入Scheduler;执行调度。
注意
springboot2.0后,导包spring-boot-starter-quatz、spring-context-support,注入scheduler即可。