@Bean public SchedulerFactoryBean getSchedulerFactoryBean(DataSource dataSource){ SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean(); schedulerFactory.setDataSource(dataSource); schedulerFactory.setAutoStartup(true); // 自动启动 schedulerFactory.setStartupDelay(20); // 延时启动,应用启动成功后在启动 schedulerFactory.setOverwriteExistingJobs(true); // 覆盖DB中JOB:true、以数据库中已经存在的为准:false schedulerFactory.setApplicationContextSchedulerContextKey("applicationContext"); schedulerFactory.setConfigLocation(new ClassPathResource("quartz.properties")); return schedulerFactory; }
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setDataSource(dataSource);
@Bean public SchedulerFactoryBean schedulerFactory(JobFactory jobFactory) { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setApplicationContext(applicationContext); schedulerFactoryBean.setAutoStartup(schedulerProperties.isAutoStartup()); schedulerFactoryBean.setDataSource(dataSource); schedulerFactoryBean.setTransactionManager(platformTransactionManager); schedulerFactoryBean.setOverwriteExistingJobs(schedulerProperties.isOverwriteExistingJobs()); schedulerFactoryBean.setSchedulerFactoryClass(StdSchedulerFactory.class); schedulerFactoryBean.setBeanName(schedulerProperties.getBeanName()); schedulerFactoryBean.setJobFactory(jobFactory); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(schedulerProperties.isWaitOnShutdown()); schedulerFactoryBean.setQuartzProperties(schedulerProperties.getProperties()); schedulerFactoryBean.setStartupDelay(schedulerProperties.getStartupDelay()); schedulerFactoryBean.setCalendars(calendarMap); schedulerFactoryBean.setSchedulerListeners(schedulerListeners); return schedulerFactoryBean; }
@Override public void setDataSource(DataSource dataSource) { super.setDataSource(dataSource); this.runWithinCluster = true; }
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory) { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setOverwriteExistingJobs(true); factory.setDataSource(dataSource); factory.setJobFactory(jobFactory); factory.setQuartzProperties(quartzConf); return factory; }
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setDataSource(dataSource);
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setDataSource(dataSource);
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory) throws IOException { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setOverwriteExistingJobs(true); factory.setDataSource(dataSource); factory.setJobFactory(jobFactory); factory.setQuartzProperties(quartzProperties()); // Here we will set all the trigger beans we have defined. if (!NotificationUtil.isObjectEmpty(listOfTrigger)) { factory.setTriggers(listOfTrigger.toArray(new Trigger[listOfTrigger.size()])); } return factory; }
/** * Defines a clustered Quartz Scheduler configured by properties from * {@link #acBackendProperties}. * * @return Quart scheduler */ @Bean public SchedulerFactoryBean schedulerFactory() { SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean(); schedulerFactory.setAutoStartup(true); schedulerFactory.setDataSource(dataSource); schedulerFactory.setWaitForJobsToCompleteOnShutdown(true); schedulerFactory.setOverwriteExistingJobs(true); schedulerFactory.setSchedulerName("LogsnifferScheduler"); Properties quartzProperties = new Properties(logSnifferProperties); quartzProperties.setProperty("org.quartz.scheduler.instanceIdGenerator.class", SafeSimpleInstanceIdGenerator.class.getName()); schedulerFactory.setQuartzProperties(quartzProperties); return schedulerFactory; }
@Bean public Scheduler schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory, @Qualifier("sampleJobTrigger") Trigger sampleJobTrigger) throws Exception { SchedulerFactoryBean factory = new SchedulerFactoryBean(); // this allows to update triggers in DB when updating settings in config file: factory.setOverwriteExistingJobs(true); factory.setDataSource(dataSource); factory.setJobFactory(jobFactory); factory.setQuartzProperties(quartzProperties()); factory.afterPropertiesSet(); Scheduler scheduler = factory.getScheduler(); scheduler.setJobFactory(jobFactory); scheduler.scheduleJob((JobDetail) sampleJobTrigger.getJobDataMap().get("jobDetail"), sampleJobTrigger); scheduler.start(); return scheduler; }
@Configuration @EnableWebMvc @EnableTransactionManagement @ComponentScan("com.myapp") public class WebAppConfig extends WebMvcConfigurerAdapter { @Autowired private DataSource dataSource; @Autowired private ApplicationContext applicationContext; @Bean public SchedulerFactoryBean configureScheduler() { SchedulerFactoryBean f = new SchedulerFactoryBean(); f.setDataSource(dataSource); f.setJobFactory(new SpringBeanJobFactory()); f.setAutoStartup(false); Properties properties = new Properties(); properties.setProperty("org.quartz.threadPool.threadCount", "3"); properties.setProperty("org.quartz.jobStore.useProperties", "false"); properties.setProperty("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"); f.setQuartzProperties(properties); f.setApplicationContext(applicationContext); f.setApplicationContextSchedulerContextKey("applicationContext"); return f; } }
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory) throws IOException { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setOverwriteExistingJobs(true); factory.setAutoStartup(true); factory.setDataSource(dataSource); factory.setJobFactory(jobFactory); factory.setQuartzProperties(quartzProperties()); // Here we will set all the trigger beans we have defined. if (!AppUtil.isObjectEmpty(listOfTrigger)) { factory.setTriggers(listOfTrigger.toArray(new Trigger[listOfTrigger.size()])); } return factory; }
@Bean(name = "schedulerFactoryBean") public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory) throws Exception { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setDataSource(dataSource); factory.setJobFactory(jobFactory); factory.setQuartzProperties(quartzProperties()); factory.afterPropertiesSet(); factory.setStartupDelay(10); factory.setAutoStartup(true); return factory; }
@Bean(name = "scheduler") public SchedulerFactoryBean schedulerFactory() { SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean(); schedulerFactory.setDataSource(dataSource); schedulerFactory.setAutoStartup(true); schedulerFactory.setGlobalJobListeners(globalJobListeners); schedulerFactory.setSchedulerContextAsMap(contextMap()); schedulerFactory.setQuartzProperties(schedulerProperties()); return schedulerFactory; }
@Bean public SchedulerFactoryBean init(){ SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setDataSource(dataSource); schedulerFactoryBean.setTransactionManager(platformTransactionManager); schedulerFactoryBean.setQuartzProperties(externalPathConfig.quartzCfg()); schedulerFactoryBean.setAutoStartup(true); // 覆盖已存在定时任务 schedulerFactoryBean.setOverwriteExistingJobs(true); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(false); schedulerFactoryBean.setJobFactory(autowiringQuartzJobFactory); return schedulerFactoryBean; }
/** * 配置任务调度器 * 使用项目数据源作为quartz数据源 * @param jobFactory 自定义配置任务工厂 * @param dataSource 数据源实例 * @return * @throws Exception */ @Bean(destroyMethod = "destroy",autowire = Autowire.NO) public SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory, DataSource dataSource) throws Exception { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); //将spring管理job自定义工厂交由调度器维护 schedulerFactoryBean.setJobFactory(jobFactory); //设置覆盖已存在的任务 schedulerFactoryBean.setOverwriteExistingJobs(true); //项目启动完成后,等待2秒后开始执行调度器初始化 schedulerFactoryBean.setStartupDelay(2); //设置调度器自动运行 schedulerFactoryBean.setAutoStartup(true); //设置数据源,使用与项目统一数据源 schedulerFactoryBean.setDataSource(dataSource); //设置上下文spring bean name schedulerFactoryBean.setApplicationContextSchedulerContextKey("applicationContext"); //设置配置文件位置 schedulerFactoryBean.setConfigLocation(new ClassPathResource("/quartz.properties")); return schedulerFactoryBean; } }
/** * create scheduler */ @Bean public SchedulerFactoryBean schedulerFactoryBean() throws IOException { SchedulerFactoryBean factory = new SchedulerFactoryBean(); factory.setOverwriteExistingJobs(true); factory.setDataSource(dataSource); factory.setQuartzProperties(quartzProperties()); //Register listeners to get notification on Trigger misfire etc factory.setGlobalTriggerListeners(triggerListner); factory.setGlobalJobListeners(jobsListener); AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory(); jobFactory.setApplicationContext(applicationContext); factory.setJobFactory(jobFactory); return factory; }
@Override public void afterPropertiesSet() throws Exception { boolean useQuartzDatabase = new Boolean(ConfigContext.getCurrentContextConfig().getProperty(KSBConstants.Config.USE_QUARTZ_DATABASE)); if (useQuartzDatabase && !schedulerInjected) { // require a transaction manager if (jtaTransactionManager == null) { throw new ConfigurationException("No jta transaction manager was configured for the KSB Quartz Scheduler"); } setTransactionManager(jtaTransactionManager); if (!nonTransactionalDataSourceSet) { // since transaction manager is required... require a non transactional datasource nonTransactionalDataSource = KSBServiceLocator.getMessageNonTransactionalDataSource(); if (nonTransactionalDataSource == null) { throw new ConfigurationException("No non-transactional data source was found but is required for the KSB Quartz Scheduler"); } super.setNonTransactionalDataSource(nonTransactionalDataSource); } if (!dataSourceSet) { dataSource = KSBServiceLocator.getMessageDataSource(); } super.setDataSource(dataSource); if (transactionManagerSet && nonTransactionalDataSourceNull) { throw new ConfigurationException("A valid transaction manager was set but no non-transactional data source was found"); } } super.afterPropertiesSet(); }
@Bean public SchedulerFactoryBean schedulerFactory(JobFactory jobFactory) { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setApplicationContext(applicationContext); schedulerFactoryBean.setAutoStartup(schedulerProperties.isAutoStartup()); schedulerFactoryBean.setDataSource(dataSource); schedulerFactoryBean.setTransactionManager(platformTransactionManager); schedulerFactoryBean.setOverwriteExistingJobs(schedulerProperties.isOverwriteExistingJobs()); schedulerFactoryBean.setSchedulerFactoryClass(StdSchedulerFactory.class); schedulerFactoryBean.setBeanName(schedulerProperties.getBeanName()); schedulerFactoryBean.setJobFactory(jobFactory); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(schedulerProperties.isWaitOnShutdown()); schedulerFactoryBean.setQuartzProperties(schedulerProperties.getProperties()); schedulerFactoryBean.setStartupDelay(schedulerProperties.getStartupDelay()); schedulerFactoryBean.setCalendars(calendarMap); schedulerFactoryBean.setSchedulerListeners(schedulerListeners); return schedulerFactoryBean; } }
@Bean public SchedulerFactoryBean scheduler() { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setDataSource(dataSource); schedulerFactoryBean.setTransactionManager(transactionManager); schedulerFactoryBean.setJobFactory(jobFactory()); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(true); schedulerFactoryBean.setJobDetails(dataSourceCheckJob().getObject(), dataSourceIngestionCheckJob().getObject(), dataSourceSizeCheckJob().getObject(), incrementalJob().getObject(), tempDataSourceCleanJob().getObject(), calculatePopularityJob().getObject(), notebookKillKernelJob().getObject(), tempCSVFileCleanJob().getObject(), timeoutWorkbenchConnectionCloseJob().getObject()); schedulerFactoryBean.setTriggers(dataSourceCheckTrigger().getObject(), dataSourceIngestionCheckTrigger().getObject(), dataSourceSizeCheckTrigger().getObject(), tempDataSourceCleanTrigger().getObject(), calculatePopularityTrigger().getObject(), notebookKillKernelTrigger().getObject(), tempCSVFileCleanTrigger().getObject(), timeoutWorkbenchConnectionCloseTrigger().getObject()); return schedulerFactoryBean; }