List of usage examples for org.springframework.scheduling.quartz SchedulerFactoryBean setOverwriteExistingJobs
public void setOverwriteExistingJobs(boolean overwriteExistingJobs)
From source file:com.orange.clara.pivotaltrackermirror.config.QuartzConfig.java
@Bean public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory) throws IOException { SchedulerFactoryBean factory = new SchedulerFactoryBean(); // this allows to update triggers in DB when updating settings in config file: factory.setOverwriteExistingJobs(true); factory.setDataSource(dataSource);/* w w w . j av a 2s.c o m*/ factory.setJobFactory(jobFactory); factory.setQuartzProperties(quartzProperties()); return factory; }
From source file:com.logsniffer.app.SchedulerAppConfig.java
/** * Defines a clustered Quartz Scheduler configured by properties from * {@link #acBackendProperties}.//w w w . j a v a 2 s . c om * * @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; }
From source file:org.hsweb.web.service.impl.SchedulerAutoConfiguration.java
@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()); return schedulerFactoryBean; }
From source file:org.finra.herd.service.config.ServiceSpringModuleConfig.java
/** * Gets a Quartz scheduler factory bean that can return a Quartz scheduler. * * @return the Quartz scheduler factory bean. * @throws Exception if the bean couldn't be created. *//*w ww. ja v a 2 s. c o m*/ @Bean public SchedulerFactoryBean quartzScheduler() throws Exception { SchedulerFactoryBean quartzScheduler = new SchedulerFactoryBean(); AutowiringQuartzSpringBeanJobFactory jobFactory = new AutowiringQuartzSpringBeanJobFactory(); jobFactory.setApplicationContext(applicationContext); quartzScheduler.setJobFactory(jobFactory); // Name our scheduler. quartzScheduler.setSchedulerName("herdScheduler"); // Setup the scheduler to use Springs dataSource and transactionManager. quartzScheduler.setDataSource(herdDataSource); quartzScheduler.setTransactionManager(herdTransactionManager); // Create the Quartz tables for JUnits. if (shouldCreateQuartzTables()) { ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(); resourceDatabasePopulator.addScript(new ClassPathResource("createQuartzTables.sql")); DatabasePopulatorUtils.execute(resourceDatabasePopulator, herdDataSource); // This is what the DataSourceInitializer does. } // Set quartz properties. Please note that Spring uses LocalDataSourceJobStore extension of JobStoreCMT. Properties quartzProperties = new Properties(); quartzScheduler.setQuartzProperties(quartzProperties); // Configure Main Main Scheduler Properties. The "instance" parameters are needed to manage cluster instances. quartzProperties.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, "herdSystemJobScheduler"); quartzProperties.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_ID, StdSchedulerFactory.AUTO_GENERATE_INSTANCE_ID); // Configure ThreadPool. quartzProperties.setProperty(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, "org.quartz.simpl.SimpleThreadPool"); quartzProperties.setProperty("org.quartz.threadPool.threadCount", configurationHelper.getProperty(ConfigurationValue.SYSTEM_JOBS_THREAD_POOL_THREAD_COUNT)); quartzProperties.setProperty("org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread", "true"); // Configure JobStore. quartzProperties.setProperty("org.quartz.jobStore.tablePrefix", "QRTZ_"); quartzProperties.setProperty("org.quartz.jobStore.isClustered", "true"); quartzProperties.setProperty(ConfigurationValue.QUARTZ_JOBSTORE_DRIVER_DELEGATE_CLASS.getKey(), getQuartzDatabaseDelegateClass()); // Build a list of system jobs to be scheduled. Map<String, AbstractSystemJob> systemJobs = applicationContext.getBeansOfType(AbstractSystemJob.class); List<JobDetail> jobDetails = new ArrayList<>(); List<CronTrigger> triggers = new ArrayList<>(); for (Map.Entry<String, AbstractSystemJob> entry : systemJobs.entrySet()) { // Prepare job detail and trigger for the system job. String jobName = entry.getKey(); AbstractSystemJob systemJob = entry.getValue(); JobDetail jobDetail = newJob(systemJob.getClass()).withIdentity(jobName).storeDurably() .requestRecovery().build(); TriggerKey jobTriggerKey = TriggerKey.triggerKey(jobName + AbstractSystemJob.CRON_TRIGGER_SUFFIX); CronTrigger trigger = newTrigger().withIdentity(jobTriggerKey).forJob(jobName) .usingJobData(systemJob.getJobDataMap()) .withSchedule(cronSchedule(systemJob.getCronExpression())).build(); // Add this system job to the list of jobs/triggers to be scheduled. jobDetails.add(jobDetail); triggers.add(trigger); } // Schedule the system jobs and set a flag to overwrite already registered jobs that would be read in from the database (persistent job store). quartzScheduler.setOverwriteExistingJobs(true); quartzScheduler.setJobDetails(jobDetails.toArray(new JobDetail[jobDetails.size()])); quartzScheduler.setTriggers(triggers.toArray(new CronTrigger[triggers.size()])); return quartzScheduler; }