Example usage for org.springframework.scheduling.quartz SchedulerFactoryBean setSchedulerName

List of usage examples for org.springframework.scheduling.quartz SchedulerFactoryBean setSchedulerName

Introduction

In this page you can find the example usage for org.springframework.scheduling.quartz SchedulerFactoryBean setSchedulerName.

Prototype

public void setSchedulerName(String schedulerName) 

Source Link

Document

Set the name of the Scheduler to create via the SchedulerFactory, as an alternative to the org.quartz.scheduler.instanceName property.

Usage

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;
}