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

下面列出了怎么用org.springframework.boot.autoconfigure.quartz.JobStoreType的API类实例代码及写法,或者点击链接到github查看源代码。

/**
 * 如果并未自定义配置信息
 * 使用默认的配置信息
 *
 * @return
 */
public QuartzConfigProperties getQuartz() {
    if (quartz == null) {
        // init
        quartz = new QuartzConfigProperties();

        // 设置任务存储方式为数据库方式
        quartz.setJobStoreType(JobStoreType.JDBC);

        // 设置schema初始化模式
        quartz.getJdbc().setInitializeSchema(DataSourceInitializationMode.EMBEDDED);

        // 设置属性配置
        quartz.getProperties().put("org.quartz.scheduler.instanceName", "jobScheduler");
        quartz.getProperties().put("org.quartz.scheduler.instanceId", "AUTO");
        quartz.getProperties().put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX");
        quartz.getProperties().put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.StdJDBCDelegate");
        quartz.getProperties().put("org.quartz.jobStore.tablePrefix", "JOB_NODE_QRTZ_");
        quartz.getProperties().put("org.quartz.jobStore.isClustered", "true");
        quartz.getProperties().put("org.quartz.jobStore.clusterCheckinInterval", "20000");
        quartz.getProperties().put("org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread", "true");
    }
    return quartz;
}
 
/**
 * 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 项目: Milkomeda   文件: Neutron.java
/**
 * 创建JOB
 * @param jobName   job名称
 * @param group     job组
 * @param jobClass  job类
 * @param description job描述
 * @return  jobDetail
 */
public static JobDetail createJobDetail(String jobName, String group, Class<? extends Job> jobClass, String description) {
    return JobBuilder.newJob(jobClass)
            .withIdentity(jobName, group)
             .withDescription(description)
            // 持久化到数据库
             .storeDurably(NeutronHolder.getProps().getJobStoreType() == JobStoreType.JDBC)
            .build();
}
 
源代码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);
            }
        }

    };
}
 
 同包方法