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;
}
// 其他Bean定义...
}
这个配置类定义了一个定时任务的详细信息,包括任务的Bean名称、方法、是否并发执行以及触发器的设置。在这个例子中,我们使用了MethodInvokingJobDetailFactoryBean
来指定任务的Bean和方法,并通过SimpleTriggerFactoryBean
来设置触发器的参数。这个配置可以直接用于Spring Boot项目中,用于创建定时任务。
评论已关闭