Package org.opencms.scheduler
Class CmsScheduleManager
- java.lang.Object
-
- org.opencms.scheduler.CmsScheduleManager
-
- All Implemented Interfaces:
org.quartz.Job
public class CmsScheduleManager extends java.lang.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 theI_CmsScheduledJob
implementing classes.- Since:
- 6.0.0
- See Also:
CmsScheduledJobInfo
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
SCHEDULER_JOB_INFO
Key for the scheduled job description in the job data map.
-
Constructor Summary
Constructors Constructor Description CmsScheduleManager()
Default constructor for the scheduler manager, used only when a new job is scheduled.CmsScheduleManager(java.util.List<CmsScheduledJobInfo> configuredJobs)
Used by the configuration to create a new Scheduler during system startup.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute(org.quartz.JobExecutionContext context)
Implementation of the Quartz job interface.void
executeDirectly(java.lang.String jobId)
Given a job ID, this directly executes the corresponding job.protected void
executeJob(CmsScheduledJobInfo jobInfo)
Executes the given job.CmsScheduledJobInfo
getJob(java.lang.String id)
Returns the currently scheduled job description identified by the given id.java.util.List<CmsScheduledJobInfo>
getJobs()
Returns the currently scheduled job descriptions in an unmodifiable list.void
initialize(CmsObject adminCms)
Initializes the OpenCms scheduler.void
scheduleJob(CmsObject cms, CmsScheduledJobInfo jobInfo)
Adds a new job to the scheduler.void
shutDown()
Shuts down this instance of the OpenCms scheduler manager.CmsScheduledJobInfo
unscheduleJob(CmsObject cms, java.lang.String jobId)
Removes a currently scheduled job from the scheduler.
-
-
-
Field Detail
-
SCHEDULER_JOB_INFO
public static final java.lang.String SCHEDULER_JOB_INFO
Key for the scheduled job description in the job data map.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CmsScheduleManager
public CmsScheduleManager()
Default constructor for the scheduler manager, used only when a new job is scheduled.
-
CmsScheduleManager
public CmsScheduleManager(java.util.List<CmsScheduledJobInfo> configuredJobs)
Used by the configuration to create a new Scheduler during system startup.- Parameters:
configuredJobs
- the jobs from the configuration
-
-
Method Detail
-
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 interfaceorg.quartz.Job
- See Also:
Job.execute(org.quartz.JobExecutionContext)
-
executeDirectly
public void executeDirectly(java.lang.String jobId)
Given a job ID, this directly executes the corresponding job.- Parameters:
jobId
- the job id
-
getJob
public CmsScheduledJobInfo getJob(java.lang.String id)
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
public java.util.List<CmsScheduledJobInfo> 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
public void scheduleJob(CmsObject cms, CmsScheduledJobInfo jobInfo) throws CmsRoleViolationException, CmsSchedulerException
Adds a new job to the scheduler.- Parameters:
cms
- an OpenCms context object that must have been initialized with "Admin" permissionsjobInfo
- the job info describing the job to schedule- Throws:
CmsRoleViolationException
- if the user has insufficient role permissionsCmsSchedulerException
- if the job could not be scheduled for any reason
-
shutDown
public void shutDown()
Shuts down this instance of the OpenCms scheduler manager.
-
unscheduleJob
public CmsScheduledJobInfo unscheduleJob(CmsObject cms, java.lang.String jobId) throws CmsRoleViolationException
Removes a currently scheduled job from the scheduler.- Parameters:
cms
- an OpenCms context object that must have been initialized with "Admin" permissionsjobId
- the id of the job to unschedule, obtained withCmsScheduledJobInfo.getId()
- Returns:
- the
of the sucessfully unscheduled job, orCmsScheduledJobInfo
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
-
-