Class CmsScheduleManager

java.lang.Object
org.opencms.scheduler.CmsScheduleManager
All Implemented Interfaces:
org.quartz.Job

public class CmsScheduleManager extends Object implements org.quartz.Job
Manages the OpenCms scheduled jobs.

Please see the documentation of the class CmsScheduledJobInfo for a full description of the OpenCms scheduling capabilities.

The OpenCms scheduler implementation internally uses the Quartz scheduler from the OpenSymphony project.

This manager class implements the org.quartz.Job interface and wraps all calls to the I_CmsScheduledJob implementing classes.

Since:
6.0.0
See Also:
  • Field Details

  • Constructor Details

    • CmsScheduleManager

      Default constructor for the scheduler manager, used only when a new job is scheduled.

    • CmsScheduleManager

      public CmsScheduleManager(List<CmsScheduledJobInfo> configuredJobs)
      Used by the configuration to create a new Scheduler during system startup.

      Parameters:
      configuredJobs - the jobs from the configuration
  • Method Details

    • execute

      public void execute(org.quartz.JobExecutionContext context)
      Implementation of the Quartz job interface.

      The architecture is that this scheduler manager generates a new (empty) instance of itself for every OpenCms job scheduled with Quartz. When the Quartz job is executed, the configured implementation of I_CmsScheduledJob will be called from this method.

      Specified by:
      execute in interface org.quartz.Job
      See Also:
      • Job.execute(org.quartz.JobExecutionContext)
    • executeDirectly

      public void executeDirectly(String jobId)
      Given a job ID, this directly executes the corresponding job.

      Parameters:
      jobId - the job id
    • getJob

      Returns the currently scheduled job description identified by the given id.
      Parameters:
      id - the job id
      Returns:
      a job or null if not found
    • getJobs

      Returns the currently scheduled job descriptions in an unmodifiable list.

      The objects in the List are of type CmsScheduledJobInfo.

      Returns:
      the currently scheduled job descriptions in an unmodifiable list
    • initialize

      public void initialize(CmsObject adminCms) throws CmsRoleViolationException
      Initializes the OpenCms scheduler.

      Parameters:
      adminCms - an OpenCms context object that must have been initialized with "Admin" permissions
      Throws:
      CmsRoleViolationException - if the user has insufficient role permissions
    • scheduleJob

      Adds a new job to the scheduler.

      Parameters:
      cms - an OpenCms context object that must have been initialized with "Admin" permissions
      jobInfo - the job info describing the job to schedule
      Throws:
      CmsRoleViolationException - if the user has insufficient role permissions
      CmsSchedulerException - if the job could not be scheduled for any reason
    • shutDown

      public void shutDown()
      Shuts down this instance of the OpenCms scheduler manager.

    • unscheduleJob

      Removes a currently scheduled job from the scheduler.

      Parameters:
      cms - an OpenCms context object that must have been initialized with "Admin" permissions
      jobId - the id of the job to unschedule, obtained with CmsScheduledJobInfo.getId()
      Returns:
      the CmsScheduledJobInfo of the sucessfully unscheduled job, or null if the job could not be unscheduled
      Throws:
      CmsRoleViolationException - if the user has insufficient role permissions
    • executeJob

      protected void executeJob(CmsScheduledJobInfo jobInfo)
      Executes the given job.

      Parameters:
      jobInfo - the job info bean