Quartz test

This commit is contained in:
Timo Bejan 2023-06-28 12:52:35 +03:00
parent d5d3770046
commit 9786cc305d
2 changed files with 11 additions and 8 deletions

View File

@ -14,6 +14,7 @@ import org.quartz.Calendar;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.impl.jdbcjobstore.PostgreSQLDelegate;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
@ -58,6 +59,7 @@ public class CustomQuartzConfiguration {
@Bean
@ConditionalOnMissingBean
public SchedulerFactoryBean quartzScheduler(QuartzProperties properties,
@Qualifier("masterDataSource") DataSource dataSource,
ObjectProvider<SchedulerFactoryBeanCustomizer> customizers,
ObjectProvider<JobDetail> jobDetails,
Map<String, Calendar> calendars,
@ -72,6 +74,7 @@ public class CustomQuartzConfiguration {
schedulerFactoryBean.setSchedulerName(properties.getSchedulerName());
}
schedulerFactoryBean.setDataSource(dataSource);
schedulerFactoryBean.setAutoStartup(properties.isAutoStartup());
schedulerFactoryBean.setStartupDelay((int) properties.getStartupDelay().getSeconds());
schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(properties.isWaitForJobsToCompleteOnShutdown());
@ -80,11 +83,11 @@ public class CustomQuartzConfiguration {
schedulerFactoryBean.setQuartzProperties(this.asProperties(properties.getProperties()));
}
schedulerFactoryBean.setJobDetails((JobDetail[]) jobDetails.orderedStream().toArray((x$0) -> {
schedulerFactoryBean.setJobDetails(jobDetails.orderedStream().toArray((x$0) -> {
return new JobDetail[x$0];
}));
schedulerFactoryBean.setCalendars(calendars);
schedulerFactoryBean.setTriggers((Trigger[]) triggers.orderedStream().toArray((x$0) -> {
schedulerFactoryBean.setTriggers(triggers.orderedStream().toArray((x$0) -> {
return new Trigger[x$0];
}));
customizers.orderedStream().forEach((customizer) -> {
@ -135,7 +138,7 @@ public class CustomQuartzConfiguration {
private DataSource getDataSource(DataSource dataSource, ObjectProvider<DataSource> quartzDataSource) {
DataSource dataSourceIfAvailable = (DataSource) quartzDataSource.getIfAvailable();
DataSource dataSourceIfAvailable = quartzDataSource.getIfAvailable();
return dataSourceIfAvailable != null ? dataSourceIfAvailable : dataSource;
}
@ -143,8 +146,8 @@ public class CustomQuartzConfiguration {
private PlatformTransactionManager getTransactionManager(ObjectProvider<PlatformTransactionManager> transactionManager,
ObjectProvider<PlatformTransactionManager> quartzTransactionManager) {
PlatformTransactionManager transactionManagerIfAvailable = (PlatformTransactionManager) quartzTransactionManager.getIfAvailable();
return transactionManagerIfAvailable != null ? transactionManagerIfAvailable : (PlatformTransactionManager) transactionManager.getIfUnique();
PlatformTransactionManager transactionManagerIfAvailable = quartzTransactionManager.getIfAvailable();
return transactionManagerIfAvailable != null ? transactionManagerIfAvailable : transactionManager.getIfUnique();
}
@ -164,7 +167,7 @@ public class CustomQuartzConfiguration {
OnQuartzDatasourceInitializationCondition() {
super("Quartz", new String[]{"spring.quartz.jdbc.initialize-schema"});
super("Quartz", "spring.quartz.jdbc.initialize-schema");
}
}

View File

@ -41,7 +41,6 @@ spring:
max-attempts: 3
max-interval: 15000
prefetch: 1
liquibase:
change-log: classpath:/db/changelog/db.changelog-master.yaml
quartz:
@ -52,12 +51,13 @@ spring:
org:
quartz:
jobStore:
class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
clusterCheckinInterval: 1000
isClustered: true
driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
scheduler:
instanceId: AUTO
job-store-type: jdbc
job-store-type: JDBC
management:
endpoint: