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

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

Introduction

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

Prototype

public void setTriggers(Trigger... triggers) 

Source Link

Document

Register a list of Trigger objects with the Scheduler that this FactoryBean creates.

Usage

From source file:com.musala.cron.CronManager.java

@Bean
public SchedulerFactoryBean scheduler() {
    SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
    schedulerFactoryBean.setJobDetails(new JobDetail("jobDetails", jobDetailBean().getClass()));
    schedulerFactoryBean.setTriggers(cronTriggerBean());
    return schedulerFactoryBean;
}

From source file:mg.jerytodik.scheduler.config.JeryTodikSchedulerConfig.java

@Bean
public SchedulerFactoryBean scheduler(final Trigger trigger, final JobDetail job) {

    SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
    schedulerFactory.setConfigLocation(new ClassPathResource("quartz.properties"));
    schedulerFactory.setJobFactory(springBeanJobFactory());
    schedulerFactory.setJobDetails(job);
    schedulerFactory.setTriggers(trigger);

    return schedulerFactory;
}

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  w ww  .  j  a 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("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.
 *///from   w  w  w  .ja v a2s  .  c om
@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;
}