在Spring Boot中使用Quartz可以分为以下几个步骤:
- 添加依赖
在pom.xml文件中添加Quartz的依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
</dependency>
- 创建Job类
创建一个实现了org.quartz.Job
接口的Job类,例如:
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO: 执行任务逻辑
}
}
- 创建Trigger
创建一个Trigger对象来定义Job的执行计划,例如:
// 每5秒钟执行一次任务
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
- 创建SchedulerFactory和Scheduler
创建一个SchedulerFactory对象,并通过它来创建一个Scheduler对象,例如:
// 创建scheduler factory和scheduler
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
- 注册Job和Trigger到Scheduler中
将上面创建好的Job和Trigger注册到Scheduler中,例如:
// 将job和trigger注册到scheduler中
scheduler.scheduleJob(
JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build(),
trigger);
- 启动Scheduler
调用scheduler.start()
方法启动Scheduler,例如:
// 启动scheduler
scheduler.start();
完整示例代码:
public class MyQuartzApp {
public static void main(String[] args) throws SchedulerException {
// 创建job和trigger
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
// 创建scheduler factory和scheduler
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
// 将job和trigger注册到scheduler中
scheduler.scheduleJob(job, trigger);
// 启动scheduler
scheduler.start();
}
}