SpringBoot整合Quartz2.2.1遇到的问题,有没有也遇到过
西魏陶渊明 Java领域优质创作者 博客专家认证 2016-12-22 10:56:34 配置类如下
执行时候Scheduler,都为null
(SchedulerFactoryBean,使用Spring提供的工厂bean创建的都是null)
@Configuration
@EnableAutoConfiguration
public class ScheduleConfig2 {
//<!-- 线程执行器配置,用于任务注册 -->
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setCorePoolSize(10);
threadPoolTaskExecutor.setMaxPoolSize(100);
threadPoolTaskExecutor.setQueueCapacity(500);
return threadPoolTaskExecutor;
}
@Bean
public JobDetail jobDetail() {
JobDetailFactoryBean jobDetailFactoryBean = new JobDetailFactoryBean();
jobDetailFactoryBean.setDurability(true);
jobDetailFactoryBean.setJobClass(ScheduledTasks2.class);
JobDetail jobDetail = jobDetailFactoryBean.getObject();
return jobDetail;
}
@Bean
public SimpleTrigger simpleTrigger() {
SimpleTriggerFactoryBean simpleTriggerFactoryBean = new SimpleTriggerFactoryBean();
simpleTriggerFactoryBean.setStartDelay(1000);
simpleTriggerFactoryBean.setRepeatInterval(1000);
simpleTriggerFactoryBean.setRepeatCount(5);
simpleTriggerFactoryBean.setName("SimTrigger for Factory");
SimpleTrigger simpleTrigger = simpleTriggerFactoryBean.getObject();
return simpleTrigger;
}
@Bean
public Scheduler scheduler(JobDetail jobDetail, SimpleTrigger simpleTrigger,ThreadPoolTaskExecutor threadPoolTaskExecutor) throws Exception {
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setBeanName("scheduler");
schedulerFactoryBean.setJobDetails(jobDetail);//动态放入执行类
schedulerFactoryBean.setTriggers(simpleTrigger);//执行规则
schedulerFactoryBean.setTaskExecutor(threadPoolTaskExecutor);//线程池
Scheduler scheduler = schedulerFactoryBean.getScheduler();
return scheduler;
}
}