SpringBoot整合Quartz定时任务(持久化到数据库)_spring boot集成quartz并将数据持久化到数据库
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
@Configuration
public class QuartzConfig {
@Bean
public JobDetail sampleJobDetail() {
return JobBuilder.newJob(SampleJob.class)
.withIdentity("sampleJob")
.usingJobData("name", "World")
.storeDurably()
.build();
}
@Bean
public Trigger sampleJobTrigger() {
return TriggerBuilder.newTrigger()
.forJob(sampleJobDetail())
.withIdentity("sampleTrigger")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
}
@Bean
public SchedulerFactoryBean schedulerFactoryBean(Trigger sampleJobTrigger) {
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setTriggers(sampleJobTrigger);
return schedulerFactoryBean;
}
}
public class SampleJob implements org.quartz.Job {
@Override
public void execute(JobExecutionContext context) {
// 任务逻辑
JobKey key = context.getJobDetail().getKey();
String name = context.getJobDetail().getJobDataMap().getString("name");
System.out.println("SampleJob says: Hello " + name + "! Executing job: " + key + " executing at " + new Date());
}
}
这个代码示例展示了如何在Spring Boot应用程序中配置Quartz定时任务。首先,创建了一个JobDetail实例,指定了要执行的任务类SampleJob,并为任务提供了一些初始化数据。接着,创建了一个触发器,用于设置任务的执行策略,例如何时开始以及执行的频率。最后,配置了SchedulerFactoryBean,用于管理Quartz的调度器。这个例子简单明了,并且展示了如何将Quartz整合到Spring Boot项目中。
评论已关闭