Class InMemoryJobScheduler
- java.lang.Object
-
- org.apache.activemq.broker.scheduler.memory.InMemoryJobScheduler
-
- All Implemented Interfaces:
JobScheduler
public class InMemoryJobScheduler extends Object implements JobScheduler
Implements an in-memory JobScheduler instance.
-
-
Constructor Summary
Constructors Constructor Description InMemoryJobScheduler(String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(JobListener listener)
Add a Job listener which will receive events related to scheduled jobs.List<Job>
getAllJobs()
Get all the outstanding JobsList<Job>
getAllJobs(long start, long finish)
Get all outstanding jobs due to run between start and finishString
getName()
List<Job>
getNextScheduleJobs()
Get all the jobs scheduled to run nextlong
getNextScheduleTime()
Get the next time jobs will be firedint
hashCode()
boolean
isDispatchEnabled()
boolean
isStarted()
void
remove(long time)
remove all jobs scheduled to run at this timevoid
remove(String jobId)
remove a job with the matching jobIdvoid
removeAllJobs()
remove all the Jobs from the schedulervoid
removeAllJobs(long start, long finish)
remove all the Jobs from the scheduler that are due between the start and finish timesvoid
removeListener(JobListener listener)
remove a JobListener that was previously registered.void
schedule(String jobId, ByteSequence payload, long delay)
Add a job to be scheduledvoid
schedule(String jobId, ByteSequence payload, String cronEntry)
Add a job to be scheduledvoid
schedule(String jobId, ByteSequence payload, String cronEntry, long delay, long period, int repeat)
Add a job to be scheduledvoid
start()
void
startDispatching()
Starts dispatch of scheduled Jobs to registered listeners.void
stop()
void
stopDispatching()
Stops dispatching of scheduled Jobs to registered listeners.String
toString()
-
-
-
Constructor Detail
-
InMemoryJobScheduler
public InMemoryJobScheduler(String name)
-
-
Method Detail
-
getName
public String getName() throws Exception
- Specified by:
getName
in interfaceJobScheduler
- Returns:
- the name of the scheduler
- Throws:
Exception
-
isStarted
public boolean isStarted()
-
isDispatchEnabled
public boolean isDispatchEnabled()
-
startDispatching
public void startDispatching() throws Exception
Description copied from interface:JobScheduler
Starts dispatch of scheduled Jobs to registered listeners. Any listener added after the start dispatch method can miss jobs so its important to register critical listeners before the start of job dispatching.- Specified by:
startDispatching
in interfaceJobScheduler
- Throws:
Exception
-
stopDispatching
public void stopDispatching() throws Exception
Description copied from interface:JobScheduler
Stops dispatching of scheduled Jobs to registered listeners.- Specified by:
stopDispatching
in interfaceJobScheduler
- Throws:
Exception
-
addListener
public void addListener(JobListener listener) throws Exception
Description copied from interface:JobScheduler
Add a Job listener which will receive events related to scheduled jobs.- Specified by:
addListener
in interfaceJobScheduler
- Parameters:
listener
- The job listener to add.- Throws:
Exception
-
removeListener
public void removeListener(JobListener listener) throws Exception
Description copied from interface:JobScheduler
remove a JobListener that was previously registered. If the given listener is not in the registry this method has no effect.- Specified by:
removeListener
in interfaceJobScheduler
- Parameters:
listener
- The listener that should be removed from the listener registry.- Throws:
Exception
-
schedule
public void schedule(String jobId, ByteSequence payload, long delay) throws Exception
Description copied from interface:JobScheduler
Add a job to be scheduled- Specified by:
schedule
in interfaceJobScheduler
- Parameters:
jobId
- a unique identifier for the jobpayload
- the message to be sent when the job is scheduleddelay
- the time in milliseconds before the job will be run- Throws:
Exception
- if an error occurs while scheduling the Job.
-
schedule
public void schedule(String jobId, ByteSequence payload, String cronEntry) throws Exception
Description copied from interface:JobScheduler
Add a job to be scheduled- Specified by:
schedule
in interfaceJobScheduler
- Parameters:
jobId
- a unique identifier for the jobpayload
- the message to be sent when the job is scheduledcronEntry
- The cron entry to use to schedule this job.- Throws:
Exception
- if an error occurs while scheduling the Job.
-
schedule
public void schedule(String jobId, ByteSequence payload, String cronEntry, long delay, long period, int repeat) throws Exception
Description copied from interface:JobScheduler
Add a job to be scheduled- Specified by:
schedule
in interfaceJobScheduler
- Parameters:
jobId
- a unique identifier for the jobpayload
- the message to be sent when the job is scheduledcronEntry
- cron entrydelay
- time in ms to wait before schedulingperiod
- the time in milliseconds between successive executions of the Jobrepeat
- the number of times to execute the job - less than 0 will be repeated forever- Throws:
Exception
-
remove
public void remove(long time) throws Exception
Description copied from interface:JobScheduler
remove all jobs scheduled to run at this time- Specified by:
remove
in interfaceJobScheduler
- Parameters:
time
- The UTC time to use to remove a batch of scheduled Jobs.- Throws:
Exception
-
remove
public void remove(String jobId) throws Exception
Description copied from interface:JobScheduler
remove a job with the matching jobId- Specified by:
remove
in interfaceJobScheduler
- Parameters:
jobId
- The unique Job Id to search for and remove from the scheduled set of jobs.- Throws:
Exception
- if an error occurs while removing the Job.
-
removeAllJobs
public void removeAllJobs() throws Exception
Description copied from interface:JobScheduler
remove all the Jobs from the scheduler- Specified by:
removeAllJobs
in interfaceJobScheduler
- Throws:
Exception
-
removeAllJobs
public void removeAllJobs(long start, long finish) throws Exception
Description copied from interface:JobScheduler
remove all the Jobs from the scheduler that are due between the start and finish times- Specified by:
removeAllJobs
in interfaceJobScheduler
- Parameters:
start
- time in millisecondsfinish
- time in milliseconds- Throws:
Exception
-
getNextScheduleTime
public long getNextScheduleTime() throws Exception
Description copied from interface:JobScheduler
Get the next time jobs will be fired- Specified by:
getNextScheduleTime
in interfaceJobScheduler
- Returns:
- the time in milliseconds
- Throws:
Exception
-
getNextScheduleJobs
public List<Job> getNextScheduleJobs() throws Exception
Description copied from interface:JobScheduler
Get all the jobs scheduled to run next- Specified by:
getNextScheduleJobs
in interfaceJobScheduler
- Returns:
- a list of jobs that will be scheduled next
- Throws:
Exception
-
getAllJobs
public List<Job> getAllJobs() throws Exception
Description copied from interface:JobScheduler
Get all the outstanding Jobs- Specified by:
getAllJobs
in interfaceJobScheduler
- Returns:
- a list of all jobs
- Throws:
Exception
-
getAllJobs
public List<Job> getAllJobs(long start, long finish) throws Exception
Description copied from interface:JobScheduler
Get all outstanding jobs due to run between start and finish- Specified by:
getAllJobs
in interfaceJobScheduler
- Returns:
- a list of jobs
- Throws:
Exception
-
-