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.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
@Configuration
public class QuartzConfig {
@Bean
public MethodInvokingJobDetailFactoryBean jobDetail() {
MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();
jobDetail.setTargetBeanName("scheduledTaskService"); // 指定目标Bean名称
jobDetail.setTargetMethod("execute"); // 指定目标方法
jobDetail.setConcurrent(false); // 设置为false表示任务不并发执行
jobDetail.setName("scheduledTaskJob"); // 设置任务名称
return jobDetail;
}
@Bean
public SimpleTriggerFactoryBean simpleTrigger(MethodInvokingJobDetailFactoryBean jobDetail) {
SimpleTriggerFactoryBean trigger = new SimpleTriggerFactoryBean();
trigger.setJobDetail(jobDetail.getObject());
trigger.setStartTime(new Date()); // 设置开始时间
trigger.setRepeatInterval(2000); // 设置重复间隔时间,单位为毫秒
trigger.setRepeatCount(10); // 设置重复次数
trigger.setName("simpleTrigger"); // 设置触发器名称
return trigger;
}
// 注册SchedulerFactoryBean,Spring Boot会自动完成初始化
}
这个配置类定义了一个任务详情和一个简单触发器,它们将会触发ScheduledTaskService
的execute
方法。这个例子展示了如何在Spring Boot中配置Quartz来执行定时任务。
评论已关闭