org.springframework.boot.autoconfigure.quartz.JobStoreType#org.springframework.boot.autoconfigure.quartz.SchedulerFactoryBeanCustomizer源码实例Demo

下面列出了org.springframework.boot.autoconfigure.quartz.JobStoreType#org.springframework.boot.autoconfigure.quartz.SchedulerFactoryBeanCustomizer 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public ApiBootQuartzAutoConfiguration(ApiBootQuartzProperties properties, ObjectProvider<SchedulerFactoryBeanCustomizer> customizers, JobDetail[] jobDetails, Map<String, Calendar> calendars, Trigger[] triggers, ApplicationContext applicationContext) {
    this.properties = properties;
    this.customizers = customizers;
    this.jobDetails = jobDetails;
    this.calendars = calendars;
    this.triggers = triggers;
    this.applicationContext = applicationContext;
}
 
/**
 * properties needed to initialize Jdbc mode
 *
 * @param properties ApiBoot Quartz Properties
 * @return SchedulerFactoryBeanCustomizer
 */
@Bean
@Order(0)
public SchedulerFactoryBeanCustomizer jobPropertiesCustomizer(ApiBootQuartzProperties properties) {
    return schedulerFactoryBean -> {
        // jdbc away
        if (properties.getJobStoreType() == JobStoreType.JDBC) {

            ApiBootQuartzProperties.Prop prop = properties.getProp();
            // get prop class declared fields
            Field[] fields = prop.getClass().getDeclaredFields();
            Arrays.stream(fields).forEach(field -> {
                try {
                    field.setAccessible(true);
                    String value = String.valueOf(field.get(prop));
                    PropKey propKey = field.getDeclaredAnnotation(PropKey.class);

                    // put prop to quartz properties
                    properties.getProperties().put(propKey.value(), value);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }

            });
        }
    };
}
 
@Bean
@Order(1)
public SchedulerFactoryBeanCustomizer jobDataSourceCustomizer(ApiBootQuartzProperties properties, DataSource dataSource, @QuartzDataSource ObjectProvider<DataSource> quartzDataSource, ObjectProvider<PlatformTransactionManager> transactionManager) {
    return (schedulerFactoryBean) -> {
        if (properties.getJobStoreType() == JobStoreType.JDBC) {
            DataSource dataSourceToUse = this.getDataSource(dataSource, quartzDataSource);
            schedulerFactoryBean.setDataSource(dataSourceToUse);
            PlatformTransactionManager txManager = transactionManager.getIfUnique();
            if (txManager != null) {
                schedulerFactoryBean.setTransactionManager(txManager);
            }
        }

    };
}
 
源代码4 项目: api-boot   文件: ApiBootQuartzAutoConfiguration.java
public ApiBootQuartzAutoConfiguration(ApiBootQuartzProperties properties, ObjectProvider<SchedulerFactoryBeanCustomizer> customizers, JobDetail[] jobDetails, Map<String, Calendar> calendars, Trigger[] triggers, ApplicationContext applicationContext) {
    this.properties = properties;
    this.customizers = customizers;
    this.jobDetails = jobDetails;
    this.calendars = calendars;
    this.triggers = triggers;
    this.applicationContext = applicationContext;
}
 
源代码5 项目: api-boot   文件: ApiBootQuartzAutoConfiguration.java
/**
 * properties needed to initialize Jdbc mode
 *
 * @param properties ApiBoot Quartz Properties
 * @return SchedulerFactoryBeanCustomizer
 */
@Bean
@Order(0)
public SchedulerFactoryBeanCustomizer jobPropertiesCustomizer(ApiBootQuartzProperties properties) {
    return schedulerFactoryBean -> {
        // jdbc away
        if (properties.getJobStoreType() == JobStoreType.JDBC) {

            ApiBootQuartzProperties.Prop prop = properties.getProp();
            // get prop class declared fields
            Field[] fields = prop.getClass().getDeclaredFields();
            Arrays.stream(fields).forEach(field -> {
                try {
                    field.setAccessible(true);
                    String value = String.valueOf(field.get(prop));
                    PropKey propKey = field.getDeclaredAnnotation(PropKey.class);

                    // put prop to quartz properties
                    properties.getProperties().put(propKey.value(), value);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }

            });
        }
    };
}
 
源代码6 项目: api-boot   文件: ApiBootQuartzAutoConfiguration.java
@Bean
@Order(1)
public SchedulerFactoryBeanCustomizer jobDataSourceCustomizer(ApiBootQuartzProperties properties, DataSource dataSource, @QuartzDataSource ObjectProvider<DataSource> quartzDataSource, ObjectProvider<PlatformTransactionManager> transactionManager) {
    return (schedulerFactoryBean) -> {
        if (properties.getJobStoreType() == JobStoreType.JDBC) {
            DataSource dataSourceToUse = this.getDataSource(dataSource, quartzDataSource);
            schedulerFactoryBean.setDataSource(dataSourceToUse);
            PlatformTransactionManager txManager = transactionManager.getIfUnique();
            if (txManager != null) {
                schedulerFactoryBean.setTransactionManager(txManager);
            }
        }

    };
}
 
源代码7 项目: cloudbreak   文件: SchedulerFactoryConfig.java
@Bean
public SchedulerFactoryBeanCustomizer schedulerFactoryBeanCustomizer() {
    return bean -> {
        bean.setAutoStartup(properties.isAutoSyncEnabled());
    };
}