package com.xxl.job.admin.core.conf;
|
|
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
|
import org.quartz.Scheduler;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
|
|
import javax.sql.DataSource;
|
|
/**
|
* @author xuxueli 2018-10-28 00:18:17
|
*/
|
@Configuration
|
public class XxlJobDynamicSchedulerConfig {
|
|
@Bean
|
public SchedulerFactoryBean getSchedulerFactoryBean(DataSource dataSource){
|
|
SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
|
schedulerFactory.setDataSource(dataSource);
|
schedulerFactory.setAutoStartup(true); // 自动启动
|
schedulerFactory.setStartupDelay(20); // 延时启动,应用启动成功后在启动
|
schedulerFactory.setOverwriteExistingJobs(true); // 覆盖DB中JOB:true、以数据库中已经存在的为准:false
|
schedulerFactory.setApplicationContextSchedulerContextKey("applicationContext");
|
schedulerFactory.setConfigLocation(new ClassPathResource("quartz.properties"));
|
|
return schedulerFactory;
|
}
|
|
@Bean(initMethod = "start", destroyMethod = "destroy")
|
public XxlJobDynamicScheduler getXxlJobDynamicScheduler(SchedulerFactoryBean schedulerFactory){
|
|
Scheduler scheduler = schedulerFactory.getScheduler();
|
|
XxlJobDynamicScheduler xxlJobDynamicScheduler = new XxlJobDynamicScheduler();
|
xxlJobDynamicScheduler.setScheduler(scheduler);
|
|
return xxlJobDynamicScheduler;
|
}
|
|
}
|