commit
This commit is contained in:
@@ -2,6 +2,8 @@ package com.spring.infra.quartz;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.quartz.Job;
|
||||
import org.quartz.Scheduler;
|
||||
import org.quartz.spi.JobFactory;
|
||||
import org.quartz.spi.TriggerFiredBundle;
|
||||
import org.springframework.batch.core.configuration.JobRegistry;
|
||||
@@ -9,9 +11,7 @@ import org.springframework.batch.core.configuration.support.JobRegistryBeanPostP
|
||||
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
|
||||
import org.springframework.scheduling.quartz.SpringBeanJobFactory;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -30,12 +30,12 @@ public class QuartzConfig {
|
||||
* @param jobRegistry ths Spring Batch Job Registry
|
||||
* @return JobRegistry BeanPostProcessor
|
||||
*/
|
||||
// @Bean
|
||||
// JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor(JobRegistry jobRegistry) {
|
||||
// var jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor();
|
||||
// jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry);
|
||||
// return jobRegistryBeanPostProcessor;
|
||||
// }
|
||||
@Bean
|
||||
JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor(JobRegistry jobRegistry) {
|
||||
var jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor();
|
||||
jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry);
|
||||
return jobRegistryBeanPostProcessor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Quartz Schedule Job 에 의존성 주입
|
||||
@@ -45,13 +45,10 @@ public class QuartzConfig {
|
||||
*/
|
||||
@Bean
|
||||
JobFactory jobFactory(AutowireCapableBeanFactory beanFactory) {
|
||||
return new SpringBeanJobFactory(){
|
||||
@Override
|
||||
protected @NonNull Object createJobInstance(@NonNull final TriggerFiredBundle bundle) throws Exception {
|
||||
var job = super.createJobInstance(bundle);
|
||||
beanFactory.autowireBean(job);
|
||||
return job;
|
||||
}
|
||||
return (TriggerFiredBundle bundle, Scheduler scheduler) -> {
|
||||
Job job = beanFactory.createBean(bundle.getJobDetail().getJobClass());
|
||||
beanFactory.autowireBean(job);
|
||||
return job;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -64,12 +61,12 @@ public class QuartzConfig {
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Bean
|
||||
SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory) throws Exception {
|
||||
SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory) {
|
||||
var factory = new SchedulerFactoryBean();
|
||||
factory.setSchedulerName("SampleProject-0.0.1");
|
||||
factory.setQuartzProperties(quartzProperties.toProperties());
|
||||
factory.setOverwriteExistingJobs(true); //Job Detail 데이터 Overwrite 유무
|
||||
factory.setDataSource(dataSource); //Schedule 관리를 Spring Datasource 에 위임
|
||||
factory.setOverwriteExistingJobs(true);
|
||||
factory.setDataSource(dataSource);
|
||||
factory.setTransactionManager(transactionManager);
|
||||
factory.setJobFactory(jobFactory);
|
||||
factory.setAutoStartup(true);
|
||||
|
||||
Reference in New Issue
Block a user