记录一次整合Quartz部署Tomcat关闭时出现OOM
/**
* 在配置文件中增加factory.setWaitForJobsToCompleteOnShutdown(true);配置使关闭tomcat时等待执行的线程全部关闭
* SchedulerFactoryBean这个类的真正作用提供了对org.quartz.Scheduler的创建与配置,并且会管理它的生命周期与Spring同步
* org.quartz.Scheduler: 调度器。所有的调度都是由它控制
* @param jobFactory 为SchedulerFactory配置JobFactory
* @param dataSource 为SchedulerFactory配置数据源
* @param transactionManager 事务管理器
* @return
* @throws IOException
*/
@Bean
public SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory, DataSource dataSource, PlatformTransactionManager transactionManager) throws IOException {
SchedulerFactoryBean factory = new SchedulerFactoryBean();
//设置自行启动
factory.setAutoStartup(true);
//可选,QuartzScheduler启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录
factory.setOverwriteExistingJobs(true);
factory.setJobFactory(jobFactory);
factory.setQuartzProperties(quartzProperties());
//集群版配置
factory.setDataSource(dataSource);
factory.setTransactionManager(transactionManager);
//设置自动销毁
factory.setWaitForJobsToCompleteOnShutdown(true);
return factory;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.