Class QuartzSchedulerService
- java.lang.Object
-
- org.apache.turbine.services.BaseInitable
-
- org.apache.turbine.services.BaseService
-
- org.apache.turbine.services.TurbineBaseService
-
- org.apache.turbine.services.schedule.QuartzSchedulerService
-
- All Implemented Interfaces:
Initable
,ScheduleService
,Service
public class QuartzSchedulerService extends TurbineBaseService implements ScheduleService
Service for a quartz scheduler.- Author:
- Thomas Vandahl
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
enabled
Current status of the schedulerprotected static org.apache.logging.log4j.Logger
log
Logging-
Fields inherited from class org.apache.turbine.services.BaseService
configuration, name, serviceBroker
-
Fields inherited from class org.apache.turbine.services.BaseInitable
initableBroker, isInitialized
-
Fields inherited from interface org.apache.turbine.services.schedule.ScheduleService
INTIALLY_ACTIVE, LOGGER_NAME, SERVICE_NAME
-
Fields inherited from interface org.apache.turbine.services.Service
SERVICE_NAME
-
-
Constructor Summary
Constructors Constructor Description QuartzSchedulerService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addJob(JobEntry je)
Add a new job to the queue.JobEntryQuartz
buildJobEntry(org.quartz.Trigger trigger, org.quartz.JobDetail jd)
Builds aJobEntryQuartz
from Quartz trigger/job.JobEntry
getJob(int oid)
Get a specific Job from Storage.org.quartz.Scheduler
getScheduler()
Exposing the Quartz scheduler to handle jobs/triggers in more detail.void
init()
Initializes the SchedulerService.boolean
isEnabled()
Determines if the scheduler service is currently enabled.List<? extends JobEntry>
listJobs()
List jobs in the queue.JobEntry
newJob(int sec, int min, int hour, int wd, int day_mo, String task)
Factory method for a new Job Schedule a job to run on a certain point of time.
Example 1: Run the DefaultScheduledJob at 8:00am every 15th of the month -
JobEntry je = newJob(0,0,8,-1,15,"DefaultScheduledJob");
Example 2: Run the DefaultScheduledJob at 8:00am every day -
JobEntry je = newJob(0,0,8,-1,-1,"DefaultScheduledJob");
Example 3: Run the DefaultScheduledJob every 2 hours. -
JobEntry je = newJob(0,120,-1,-1,-1,"DefaultScheduledJob");
Example 4: Run the DefaultScheduledJob every 30 seconds. -
JobEntry je = newJob(30,-1,-1,-1,-1,"DefaultScheduledJob");void
removeJob(JobEntry je)
Remove a job from the queue.void
restart()
Start (or restart) a thread to process commands, or wake up an existing thread if one is already running.protected void
setEnabled(boolean enabled)
Sets the enabled status of the schedulervoid
shutdown()
Shutdowns the service.void
startScheduler()
Starts or restarts the scheduler if not already running.void
stopScheduler()
Stops the scheduler if it is currently running.void
updateJob(JobEntry je)
Add or update a job.-
Methods inherited from class org.apache.turbine.services.TurbineBaseService
init, init
-
Methods inherited from class org.apache.turbine.services.BaseService
getConfiguration, getName, getProperties, getServiceBroker, setName, setServiceBroker
-
Methods inherited from class org.apache.turbine.services.BaseInitable
getInit, getInitableBroker, setInit, setInitableBroker
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.turbine.services.Initable
getInit, init, setInitableBroker
-
Methods inherited from interface org.apache.turbine.services.Service
getConfiguration, getName, getProperties, setName, setServiceBroker
-
-
-
-
Constructor Detail
-
QuartzSchedulerService
public QuartzSchedulerService()
-
-
Method Detail
-
init
public void init() throws InitializationException
Initializes the SchedulerService. Retrieves the Quartzscheduler
from the FulcrumQuartzScheduler
service.- Specified by:
init
in interfaceInitable
- Overrides:
init
in classTurbineBaseService
- Throws:
InitializationException
- Something went wrong in the init stage
-
shutdown
public void shutdown()
Shutdowns the service. This methods interrupts the housekeeping thread.- Specified by:
shutdown
in interfaceInitable
- Overrides:
shutdown
in classTurbineBaseService
-
newJob
public JobEntry newJob(int sec, int min, int hour, int wd, int day_mo, String task) throws TurbineException
Description copied from interface:ScheduleService
Factory method for a new Job Schedule a job to run on a certain point of time.
Example 1: Run the DefaultScheduledJob at 8:00am every 15th of the month -
JobEntry je = newJob(0,0,8,-1,15,"DefaultScheduledJob");
Example 2: Run the DefaultScheduledJob at 8:00am every day -
JobEntry je = newJob(0,0,8,-1,-1,"DefaultScheduledJob");
Example 3: Run the DefaultScheduledJob every 2 hours. -
JobEntry je = newJob(0,120,-1,-1,-1,"DefaultScheduledJob");
Example 4: Run the DefaultScheduledJob every 30 seconds. -
JobEntry je = newJob(30,-1,-1,-1,-1,"DefaultScheduledJob");- Specified by:
newJob
in interfaceScheduleService
- Parameters:
sec
- Value for entry "seconds".min
- Value for entry "minutes".hour
- Value for entry "hours".wd
- Value for entry "week days".day_mo
- Value for entry "month days".task
- Task to execute.- Returns:
- A JobEntry.
- Throws:
TurbineException
- could not create job- See Also:
ScheduleService.newJob(int, int, int, int, int, java.lang.String)
-
getJob
public JobEntry getJob(int oid) throws TurbineException
Get a specific Job from Storage.- Specified by:
getJob
in interfaceScheduleService
- Parameters:
oid
- The int id for the job.- Returns:
- A JobEntry.
- Throws:
TurbineException
- job could not be retrieved.
-
addJob
public void addJob(JobEntry je) throws TurbineException
Add a new job to the queue.- Specified by:
addJob
in interfaceScheduleService
- Parameters:
je
- A JobEntry with the job to add.- Throws:
TurbineException
- job could not be added
-
removeJob
public void removeJob(JobEntry je) throws TurbineException
Remove a job from the queue.- Specified by:
removeJob
in interfaceScheduleService
- Parameters:
je
- A JobEntry with the job to remove.- Throws:
TurbineException
- job could not be removed
-
updateJob
public void updateJob(JobEntry je) throws TurbineException
Add or update a job.- Specified by:
updateJob
in interfaceScheduleService
- Parameters:
je
- A JobEntry with the job to modify- Throws:
TurbineException
- job could not be updated
-
listJobs
public List<? extends JobEntry> listJobs()
List jobs in the queue. This is used by the scheduler UI.- Specified by:
listJobs
in interfaceScheduleService
- Returns:
- A List of jobs.
-
setEnabled
protected void setEnabled(boolean enabled)
Sets the enabled status of the scheduler- Parameters:
enabled
- true if enabled
-
isEnabled
public boolean isEnabled()
Determines if the scheduler service is currently enabled.- Specified by:
isEnabled
in interfaceScheduleService
- Returns:
- Status of the scheduler service.
-
startScheduler
public void startScheduler()
Starts or restarts the scheduler if not already running.- Specified by:
startScheduler
in interfaceScheduleService
-
stopScheduler
public void stopScheduler()
Stops the scheduler if it is currently running.- Specified by:
stopScheduler
in interfaceScheduleService
-
restart
public void restart()
Start (or restart) a thread to process commands, or wake up an existing thread if one is already running. This method can be invoked if the background thread crashed due to an unrecoverable exception in an executed command.
-
getScheduler
public org.quartz.Scheduler getScheduler()
Exposing the Quartz scheduler to handle jobs/triggers in more detail.- Returns:
- the
Scheduler
of this service.
-
buildJobEntry
public JobEntryQuartz buildJobEntry(org.quartz.Trigger trigger, org.quartz.JobDetail jd)
Builds aJobEntryQuartz
from Quartz trigger/job. The developer should be aware to set identity/context properly, i.e. toJobEntryQuartz.DEFAULT_JOB_GROUP_NAME
, if adding triggers/jobs.- Parameters:
trigger
- a QuartzTrigger
.jd
- a QuartzJobDetail
(built from aJob
withJobBuilder
).- Returns:
- A JobEntryQuartz.
-
-