List of usage examples for org.springframework.scheduling.quartz SchedulerFactoryBean setSchedulerName
public void setSchedulerName(String schedulerName)
From source file:com.logsniffer.app.SchedulerAppConfig.java
/** * Defines a clustered Quartz Scheduler configured by properties from * {@link #acBackendProperties}./* w w w .j ava 2 s. c o m*/ * * @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.apache.fineract.infrastructure.jobs.service.JobRegisterServiceImpl.java
private Scheduler createScheduler(final String name, final int noOfThreads, JobListener... jobListeners) throws Exception { final SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setSchedulerName(name); schedulerFactoryBean.setGlobalJobListeners(jobListeners); final TriggerListener[] globalTriggerListeners = { globalSchedulerTriggerListener }; schedulerFactoryBean.setGlobalTriggerListeners(globalTriggerListeners); final Properties quartzProperties = new Properties(); quartzProperties.put(SchedulerFactoryBean.PROP_THREAD_COUNT, Integer.toString(noOfThreads)); schedulerFactoryBean.setQuartzProperties(quartzProperties); schedulerFactoryBean.afterPropertiesSet(); schedulerFactoryBean.start();// ww w . java2 s .c o m return schedulerFactoryBean.getScheduler(); }
From source file:org.finra.dm.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. *///from ww w . j a v a 2 s. co 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("dmScheduler"); // Setup the scheduler to use Springs dataSource and transactionManager. quartzScheduler.setDataSource(dmDataSource); quartzScheduler.setTransactionManager(dmTransactionManager); // Create the Quartz tables for JUnits. if (shouldCreateQuartzTables()) { ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(); resourceDatabasePopulator.addScript(new ClassPathResource("createQuartzTables.sql")); DatabasePopulatorUtils.execute(resourceDatabasePopulator, dmDataSource); // 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, "dmSystemJobScheduler"); quartzProperties.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_ID, StdSchedulerFactory.AUTO_GENERATE_INSTANCE_ID); quartzProperties.setProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK, "true"); // 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. quartzScheduler.setJobDetails(jobDetails.toArray(new JobDetail[jobDetails.size()])); quartzScheduler.setTriggers(triggers.toArray(new CronTrigger[triggers.size()])); return quartzScheduler; }
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 w w .ja v a 2s. com*/ @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; }