Class SchedulerAccessor

java.lang.Object
org.springframework.scheduling.quartz.SchedulerAccessor
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ResourceLoaderAware
Direct Known Subclasses:
SchedulerAccessorBean, SchedulerFactoryBean

public abstract class SchedulerAccessor extends Object implements org.springframework.context.ResourceLoaderAware
Common base class for accessing a Quartz Scheduler, i.e. for registering jobs, triggers and listeners on a Scheduler instance.

For concrete usage, check out the SchedulerFactoryBean and SchedulerAccessorBean classes.

Compatible with Quartz 2.1.4 and higher, as of Spring 4.1.

Since:
2.5.6
Author:
Juergen Hoeller, Stephane Nicoll
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Log
     
    protected org.springframework.core.io.ResourceLoader
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract Scheduler
    Template method that determines the Scheduler to operate on.
    protected void
    Register jobs and triggers (within a transaction, if possible).
    protected void
    Register all specified listeners with the Scheduler.
    void
    Register a list of Quartz Calendar objects with the Scheduler that this FactoryBean creates, to be referenced by Triggers.
    void
    setGlobalJobListeners(JobListener... globalJobListeners)
    Specify global Quartz JobListeners to be registered with the Scheduler.
    void
    setGlobalTriggerListeners(TriggerListener... globalTriggerListeners)
    Specify global Quartz TriggerListeners to be registered with the Scheduler.
    void
    setJobDetails(JobDetail... jobDetails)
    Register a list of JobDetail objects with the Scheduler that this FactoryBean creates, to be referenced by Triggers.
    void
    setJobSchedulingDataLocation(String jobSchedulingDataLocation)
    Set the location of a Quartz job definition XML file that follows the "job_scheduling_data_1_5" XSD or better.
    void
    setJobSchedulingDataLocations(String... jobSchedulingDataLocations)
    Set the locations of Quartz job definition XML files that follow the "job_scheduling_data_1_5" XSD or better.
    void
    setOverwriteExistingJobs(boolean overwriteExistingJobs)
    Set whether any jobs defined on this SchedulerFactoryBean should overwrite existing job definitions.
    void
    setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
     
    void
    Specify Quartz SchedulerListeners to be registered with the Scheduler.
    void
    setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager)
    Set the transaction manager to be used for registering jobs and triggers that are defined by this SchedulerFactoryBean.
    void
    setTriggers(Trigger... triggers)
    Register a list of Trigger objects with the Scheduler that this FactoryBean creates.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • logger

      protected final Log logger
    • resourceLoader

      @Nullable protected org.springframework.core.io.ResourceLoader resourceLoader
  • Constructor Details

    • SchedulerAccessor

      public SchedulerAccessor()
  • Method Details

    • setOverwriteExistingJobs

      public void setOverwriteExistingJobs(boolean overwriteExistingJobs)
      Set whether any jobs defined on this SchedulerFactoryBean should overwrite existing job definitions. Default is "false", to not overwrite already registered jobs that have been read in from a persistent job store.
    • setJobSchedulingDataLocation

      public void setJobSchedulingDataLocation(String jobSchedulingDataLocation)
      Set the location of a Quartz job definition XML file that follows the "job_scheduling_data_1_5" XSD or better. Can be specified to automatically register jobs that are defined in such a file, possibly in addition to jobs defined directly on this SchedulerFactoryBean.
      See Also:
    • setJobSchedulingDataLocations

      public void setJobSchedulingDataLocations(String... jobSchedulingDataLocations)
      Set the locations of Quartz job definition XML files that follow the "job_scheduling_data_1_5" XSD or better. Can be specified to automatically register jobs that are defined in such files, possibly in addition to jobs defined directly on this SchedulerFactoryBean.
      See Also:
    • setJobDetails

      public void setJobDetails(JobDetail... jobDetails)
      Register a list of JobDetail objects with the Scheduler that this FactoryBean creates, to be referenced by Triggers.

      This is not necessary when a Trigger determines the JobDetail itself: In this case, the JobDetail will be implicitly registered in combination with the Trigger.

      See Also:
    • setCalendars

      public void setCalendars(Map<String,Calendar> calendars)
      Register a list of Quartz Calendar objects with the Scheduler that this FactoryBean creates, to be referenced by Triggers.
      Parameters:
      calendars - a Map with calendar names as keys as Calendar objects as values
      See Also:
    • setTriggers

      public void setTriggers(Trigger... triggers)
      Register a list of Trigger objects with the Scheduler that this FactoryBean creates.

      If the Trigger determines the corresponding JobDetail itself, the job will be automatically registered with the Scheduler. Else, the respective JobDetail needs to be registered via the "jobDetails" property of this FactoryBean.

      See Also:
    • setSchedulerListeners

      public void setSchedulerListeners(SchedulerListener... schedulerListeners)
      Specify Quartz SchedulerListeners to be registered with the Scheduler.
    • setGlobalJobListeners

      public void setGlobalJobListeners(JobListener... globalJobListeners)
      Specify global Quartz JobListeners to be registered with the Scheduler. Such JobListeners will apply to all Jobs in the Scheduler.
    • setGlobalTriggerListeners

      public void setGlobalTriggerListeners(TriggerListener... globalTriggerListeners)
      Specify global Quartz TriggerListeners to be registered with the Scheduler. Such TriggerListeners will apply to all Triggers in the Scheduler.
    • setTransactionManager

      public void setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager)
      Set the transaction manager to be used for registering jobs and triggers that are defined by this SchedulerFactoryBean. Default is none; setting this only makes sense when specifying a DataSource for the Scheduler.
    • setResourceLoader

      public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
      Specified by:
      setResourceLoader in interface org.springframework.context.ResourceLoaderAware
    • registerJobsAndTriggers

      protected void registerJobsAndTriggers() throws SchedulerException
      Register jobs and triggers (within a transaction, if possible).
      Throws:
      SchedulerException
    • registerListeners

      protected void registerListeners() throws SchedulerException
      Register all specified listeners with the Scheduler.
      Throws:
      SchedulerException
    • getScheduler

      protected abstract Scheduler getScheduler()
      Template method that determines the Scheduler to operate on. To be implemented by subclasses.