|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.quartz.simpl.RAMJobStore
public class RAMJobStore
This class implements a
that
utilizes RAM as its storage device.
JobStore
As you should know, the ramification of this is that access is extrememly
fast, but the data is completely volatile - therefore this JobStore
should not be used if true persistence between program shutdowns is
required.
Field Summary | |
---|---|
protected HashSet<JobKey> |
blockedJobs
|
protected HashMap<String,Calendar> |
calendarsByName
|
protected HashMap<String,HashMap<JobKey,org.quartz.simpl.JobWrapper>> |
jobsByGroup
|
protected HashMap<JobKey,org.quartz.simpl.JobWrapper> |
jobsByKey
|
protected Object |
lock
|
protected long |
misfireThreshold
|
protected HashSet<String> |
pausedJobGroups
|
protected HashSet<String> |
pausedTriggerGroups
|
protected org.quartz.spi.SchedulerSignaler |
signaler
|
protected TreeSet<org.quartz.simpl.TriggerWrapper> |
timeTriggers
|
protected ArrayList<org.quartz.simpl.TriggerWrapper> |
triggers
|
protected HashMap<String,HashMap<TriggerKey,org.quartz.simpl.TriggerWrapper>> |
triggersByGroup
|
protected HashMap<TriggerKey,org.quartz.simpl.TriggerWrapper> |
triggersByKey
|
Constructor Summary | |
---|---|
RAMJobStore()
Create a new RAMJobStore . |
Method Summary | |
---|---|
List<org.quartz.spi.OperableTrigger> |
acquireNextTriggers(long noLaterThan,
int maxCount,
long timeWindow)
Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler. |
protected boolean |
applyMisfire(org.quartz.simpl.TriggerWrapper tw)
|
boolean |
checkExists(JobKey jobKey)
Determine whether a Job with the given identifier already
exists within the scheduler. |
boolean |
checkExists(TriggerKey triggerKey)
Determine whether a Trigger with the given identifier already
exists within the scheduler. |
void |
clearAllSchedulingData()
Clear (delete!) all scheduling data - all Job s, Trigger s
Calendar s. |
List<String> |
getCalendarNames()
Get the names of all of the s
in the JobStore . |
long |
getEstimatedTimeToReleaseAndAcquireTrigger()
|
protected String |
getFiredTriggerRecordId()
|
List<String> |
getJobGroupNames()
Get the names of all of the
groups. |
Set<JobKey> |
getJobKeys(GroupMatcher<JobKey> matcher)
Get the names of all of the s that
match the given groupMatcher. |
protected org.slf4j.Logger |
getLog()
|
long |
getMisfireThreshold()
|
int |
getNumberOfCalendars()
Get the number of s that are
stored in the JobsStore . |
int |
getNumberOfJobs()
Get the number of s that are
stored in the JobsStore . |
int |
getNumberOfTriggers()
Get the number of s that are
stored in the JobsStore . |
Set<String> |
getPausedTriggerGroups()
|
List<String> |
getTriggerGroupNames()
Get the names of all of the
groups. |
Set<TriggerKey> |
getTriggerKeys(GroupMatcher<TriggerKey> matcher)
Get the names of all of the s
that match the given groupMatcher. |
List<org.quartz.spi.OperableTrigger> |
getTriggersForJob(JobKey jobKey)
Get all of the Triggers that are associated to the given Job. |
Trigger.TriggerState |
getTriggerState(TriggerKey triggerKey)
Get the current state of the identified . |
protected ArrayList<org.quartz.simpl.TriggerWrapper> |
getTriggerWrappersForCalendar(String calName)
|
protected ArrayList<org.quartz.simpl.TriggerWrapper> |
getTriggerWrappersForJob(JobKey jobKey)
|
void |
initialize(org.quartz.spi.ClassLoadHelper loadHelper,
org.quartz.spi.SchedulerSignaler schedSignaler)
Called by the QuartzScheduler before the JobStore is
used, in order to give the it a chance to initialize. |
boolean |
isClustered()
|
void |
pauseAll()
Pause all triggers - equivalent of calling pauseTriggerGroup(group)
on every group. |
void |
pauseJob(JobKey jobKey)
Pause the with the given
name - by pausing all of its current Trigger s. |
List<String> |
pauseJobs(GroupMatcher<JobKey> matcher)
Pause all of the in the
given group - by pausing all of their Trigger s. |
void |
pauseTrigger(TriggerKey triggerKey)
Pause the with the given name. |
List<String> |
pauseTriggers(GroupMatcher<TriggerKey> matcher)
Pause all of the known matching. |
protected String |
peekTriggers()
|
void |
releaseAcquiredTrigger(org.quartz.spi.OperableTrigger trigger)
Inform the JobStore that the scheduler no longer plans to
fire the given Trigger , that it had previously acquired
(reserved). |
boolean |
removeCalendar(String calName)
Remove (delete) the with the
given name. |
boolean |
removeJob(JobKey jobKey)
Remove (delete) the with the given
name, and any s that reference
it. |
boolean |
removeJobs(List<JobKey> jobKeys)
|
boolean |
removeTrigger(TriggerKey triggerKey)
Remove (delete) the with the
given name. |
boolean |
removeTriggers(List<TriggerKey> triggerKeys)
|
boolean |
replaceTrigger(TriggerKey triggerKey,
org.quartz.spi.OperableTrigger newTrigger)
|
void |
resumeAll()
Resume (un-pause) all triggers - equivalent of calling resumeTriggerGroup(group)
on every group. |
void |
resumeJob(JobKey jobKey)
Resume (un-pause) the with
the given name. |
Collection<String> |
resumeJobs(GroupMatcher<JobKey> matcher)
Resume (un-pause) all of the
in the given group. |
void |
resumeTrigger(TriggerKey triggerKey)
Resume (un-pause) the with the given
key. |
List<String> |
resumeTriggers(GroupMatcher<TriggerKey> matcher)
Resume (un-pause) all of the in the
given group. |
Calendar |
retrieveCalendar(String calName)
Retrieve the given . |
JobDetail |
retrieveJob(JobKey jobKey)
Retrieve the for the given
. |
org.quartz.spi.OperableTrigger |
retrieveTrigger(TriggerKey triggerKey)
Retrieve the given . |
void |
schedulerPaused()
|
void |
schedulerResumed()
|
void |
schedulerStarted()
|
protected void |
setAllTriggersOfJobToState(JobKey jobKey,
int state)
|
void |
setInstanceId(String schedInstId)
|
void |
setInstanceName(String schedName)
|
void |
setMisfireThreshold(long misfireThreshold)
The number of milliseconds by which a trigger must have missed its next-fire-time, in order for it to be considered "misfired" and thus have its misfire instruction applied. |
void |
setThreadPoolSize(int poolSize)
|
void |
shutdown()
Called by the QuartzScheduler to inform the JobStore that
it should free up all of it's resources because the scheduler is
shutting down. |
void |
storeCalendar(String name,
Calendar calendar,
boolean replaceExisting,
boolean updateTriggers)
Store the given . |
void |
storeJob(JobDetail newJob,
boolean replaceExisting)
Store the given . |
void |
storeJobAndTrigger(JobDetail newJob,
org.quartz.spi.OperableTrigger newTrigger)
Store the given and . |
void |
storeJobsAndTriggers(Map<JobDetail,List<Trigger>> triggersAndJobs,
boolean replace)
|
void |
storeTrigger(org.quartz.spi.OperableTrigger newTrigger,
boolean replaceExisting)
Store the given . |
boolean |
supportsPersistence()
|
void |
triggeredJobComplete(org.quartz.spi.OperableTrigger trigger,
JobDetail jobDetail,
Trigger.CompletedExecutionInstruction triggerInstCode)
Inform the JobStore that the scheduler has completed the
firing of the given Trigger (and the execution its
associated Job ), and that the
in the given JobDetail should be updated if the Job
is stateful. |
List<org.quartz.spi.TriggerFiredResult> |
triggersFired(List<org.quartz.spi.OperableTrigger> firedTriggers)
Inform the JobStore that the scheduler is now firing the
given Trigger (executing its associated Job ),
that it had previously acquired (reserved). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected HashMap<JobKey,org.quartz.simpl.JobWrapper> jobsByKey
protected HashMap<TriggerKey,org.quartz.simpl.TriggerWrapper> triggersByKey
protected HashMap<String,HashMap<JobKey,org.quartz.simpl.JobWrapper>> jobsByGroup
protected HashMap<String,HashMap<TriggerKey,org.quartz.simpl.TriggerWrapper>> triggersByGroup
protected TreeSet<org.quartz.simpl.TriggerWrapper> timeTriggers
protected HashMap<String,Calendar> calendarsByName
protected ArrayList<org.quartz.simpl.TriggerWrapper> triggers
protected final Object lock
protected HashSet<String> pausedTriggerGroups
protected HashSet<String> pausedJobGroups
protected HashSet<JobKey> blockedJobs
protected long misfireThreshold
protected org.quartz.spi.SchedulerSignaler signaler
Constructor Detail |
---|
public RAMJobStore()
Create a new RAMJobStore
.
Method Detail |
---|
protected org.slf4j.Logger getLog()
public void initialize(org.quartz.spi.ClassLoadHelper loadHelper, org.quartz.spi.SchedulerSignaler schedSignaler)
Called by the QuartzScheduler before the JobStore
is
used, in order to give the it a chance to initialize.
initialize
in interface org.quartz.spi.JobStore
public void schedulerStarted()
schedulerStarted
in interface org.quartz.spi.JobStore
public void schedulerPaused()
schedulerPaused
in interface org.quartz.spi.JobStore
public void schedulerResumed()
schedulerResumed
in interface org.quartz.spi.JobStore
public long getMisfireThreshold()
public void setMisfireThreshold(long misfireThreshold)
misfireThreshold
- public void shutdown()
Called by the QuartzScheduler to inform the JobStore
that
it should free up all of it's resources because the scheduler is
shutting down.
shutdown
in interface org.quartz.spi.JobStore
public boolean supportsPersistence()
supportsPersistence
in interface org.quartz.spi.JobStore
public void clearAllSchedulingData() throws JobPersistenceException
Job
s, Trigger
s
Calendar
s.
clearAllSchedulingData
in interface org.quartz.spi.JobStore
JobPersistenceException
public void storeJobAndTrigger(JobDetail newJob, org.quartz.spi.OperableTrigger newTrigger) throws JobPersistenceException
Store the given
and JobDetail
.
Trigger
storeJobAndTrigger
in interface org.quartz.spi.JobStore
newJob
- The JobDetail
to be stored.newTrigger
- The Trigger
to be stored.
ObjectAlreadyExistsException
- if a Job
with the same name/group already
exists.
JobPersistenceException
public void storeJob(JobDetail newJob, boolean replaceExisting) throws ObjectAlreadyExistsException
Store the given
.
Job
storeJob
in interface org.quartz.spi.JobStore
newJob
- The Job
to be stored.replaceExisting
- If true
, any Job
existing in the
JobStore
with the same name & group should be
over-written.
ObjectAlreadyExistsException
- if a Job
with the same name/group already
exists, and replaceExisting is set to false.public boolean removeJob(JobKey jobKey)
Remove (delete) the
with the given
name, and any Job
s that reference
it.
Trigger
removeJob
in interface org.quartz.spi.JobStore
true
if a Job
with the given name &
group was found and removed from the store.public boolean removeJobs(List<JobKey> jobKeys) throws JobPersistenceException
removeJobs
in interface org.quartz.spi.JobStore
JobPersistenceException
public boolean removeTriggers(List<TriggerKey> triggerKeys) throws JobPersistenceException
removeTriggers
in interface org.quartz.spi.JobStore
JobPersistenceException
public void storeJobsAndTriggers(Map<JobDetail,List<Trigger>> triggersAndJobs, boolean replace) throws ObjectAlreadyExistsException, JobPersistenceException
storeJobsAndTriggers
in interface org.quartz.spi.JobStore
ObjectAlreadyExistsException
JobPersistenceException
public void storeTrigger(org.quartz.spi.OperableTrigger newTrigger, boolean replaceExisting) throws JobPersistenceException
Store the given
.
Trigger
storeTrigger
in interface org.quartz.spi.JobStore
newTrigger
- The Trigger
to be stored.replaceExisting
- If true
, any Trigger
existing in
the JobStore
with the same name & group should
be over-written.
ObjectAlreadyExistsException
- if a Trigger
with the same name/group already
exists, and replaceExisting is set to false.
JobPersistenceException
#pauseTriggerGroup(SchedulingContext, String)
public boolean removeTrigger(TriggerKey triggerKey)
Remove (delete) the
with the
given name.
Trigger
removeTrigger
in interface org.quartz.spi.JobStore
true
if a Trigger
with the given
name & group was found and removed from the store.public boolean replaceTrigger(TriggerKey triggerKey, org.quartz.spi.OperableTrigger newTrigger) throws JobPersistenceException
replaceTrigger
in interface org.quartz.spi.JobStore
JobPersistenceException
org.quartz.spi.JobStore#replaceTrigger(org.quartz.core.SchedulingContext, java.lang.String, java.lang.String, org.quartz.Trigger)
public JobDetail retrieveJob(JobKey jobKey)
Retrieve the
for the given
JobDetail
.
Job
retrieveJob
in interface org.quartz.spi.JobStore
Job
, or null if there is no match.public org.quartz.spi.OperableTrigger retrieveTrigger(TriggerKey triggerKey)
Retrieve the given
.
Trigger
retrieveTrigger
in interface org.quartz.spi.JobStore
Trigger
, or null if there is no
match.public boolean checkExists(JobKey jobKey)
Job
with the given identifier already
exists within the scheduler.
checkExists
in interface org.quartz.spi.JobStore
jobKey
- the identifier to check for
SchedulerException
public boolean checkExists(TriggerKey triggerKey)
Trigger
with the given identifier already
exists within the scheduler.
checkExists
in interface org.quartz.spi.JobStore
triggerKey
- the identifier to check for
SchedulerException
public Trigger.TriggerState getTriggerState(TriggerKey triggerKey) throws JobPersistenceException
Get the current state of the identified
.
Trigger
getTriggerState
in interface org.quartz.spi.JobStore
JobPersistenceException
Trigger#NORMAL
,
Trigger#PAUSED
,
Trigger#COMPLETE
,
Trigger#ERROR
,
Trigger#BLOCKED
,
Trigger#NONE
public void storeCalendar(String name, Calendar calendar, boolean replaceExisting, boolean updateTriggers) throws ObjectAlreadyExistsException
Store the given
.
Calendar
storeCalendar
in interface org.quartz.spi.JobStore
calendar
- The Calendar
to be stored.replaceExisting
- If true
, any Calendar
existing
in the JobStore
with the same name & group
should be over-written.updateTriggers
- If true
, any Trigger
s existing
in the JobStore
that reference an existing
Calendar with the same name with have their next fire time
re-computed with the new Calendar
.
ObjectAlreadyExistsException
- if a Calendar
with the same name already
exists, and replaceExisting is set to false.public boolean removeCalendar(String calName) throws JobPersistenceException
Remove (delete) the
with the
given name.
Calendar
If removal of the Calendar
would result in
Trigger
s pointing to non-existent calendars, then a
JobPersistenceException
will be thrown.
removeCalendar
in interface org.quartz.spi.JobStore
calName
- The name of the Calendar
to be removed.
true
if a Calendar
with the given name
was found and removed from the store.
JobPersistenceException
public Calendar retrieveCalendar(String calName)
Retrieve the given
.
Trigger
retrieveCalendar
in interface org.quartz.spi.JobStore
calName
- The name of the Calendar
to be retrieved.
Calendar
, or null if there is no
match.public int getNumberOfJobs()
Get the number of
s that are
stored in the JobDetail
JobsStore
.
getNumberOfJobs
in interface org.quartz.spi.JobStore
public int getNumberOfTriggers()
Get the number of
s that are
stored in the Trigger
JobsStore
.
getNumberOfTriggers
in interface org.quartz.spi.JobStore
public int getNumberOfCalendars()
Get the number of
s that are
stored in the Calendar
JobsStore
.
getNumberOfCalendars
in interface org.quartz.spi.JobStore
public Set<JobKey> getJobKeys(GroupMatcher<JobKey> matcher)
Get the names of all of the
s that
match the given groupMatcher.
Job
getJobKeys
in interface org.quartz.spi.JobStore
public List<String> getCalendarNames()
Get the names of all of the
s
in the Calendar
JobStore
.
If there are no Calendars in the given group name, the result should be
a zero-length array (not null
).
getCalendarNames
in interface org.quartz.spi.JobStore
public Set<TriggerKey> getTriggerKeys(GroupMatcher<TriggerKey> matcher)
Get the names of all of the
s
that match the given groupMatcher.
Trigger
getTriggerKeys
in interface org.quartz.spi.JobStore
public List<String> getJobGroupNames()
Get the names of all of the
groups.
Job
getJobGroupNames
in interface org.quartz.spi.JobStore
public List<String> getTriggerGroupNames()
Get the names of all of the
groups.
Trigger
getTriggerGroupNames
in interface org.quartz.spi.JobStore
public List<org.quartz.spi.OperableTrigger> getTriggersForJob(JobKey jobKey)
Get all of the Triggers that are associated to the given Job.
If there are no matches, a zero-length array should be returned.
getTriggersForJob
in interface org.quartz.spi.JobStore
protected ArrayList<org.quartz.simpl.TriggerWrapper> getTriggerWrappersForJob(JobKey jobKey)
protected ArrayList<org.quartz.simpl.TriggerWrapper> getTriggerWrappersForCalendar(String calName)
public void pauseTrigger(TriggerKey triggerKey)
Pause the
with the given name.
Trigger
pauseTrigger
in interface org.quartz.spi.JobStore
public List<String> pauseTriggers(GroupMatcher<TriggerKey> matcher)
Pause all of the known
matching.
Trigger
s
The JobStore should "remember" the groups paused, and impose the pause on any new triggers that are added to one of these groups while the group is paused.
pauseTriggers
in interface org.quartz.spi.JobStore
public void pauseJob(JobKey jobKey)
Pause the
with the given
name - by pausing all of its current JobDetail
Trigger
s.
pauseJob
in interface org.quartz.spi.JobStore
public List<String> pauseJobs(GroupMatcher<JobKey> matcher)
Pause all of the
in the
given group - by pausing all of their JobDetail
sTrigger
s.
The JobStore should "remember" that the group is paused, and impose the pause on any new jobs that are added to the group while the group is paused.
pauseJobs
in interface org.quartz.spi.JobStore
public void resumeTrigger(TriggerKey triggerKey)
Resume (un-pause) the
with the given
key.
Trigger
If the Trigger
missed one or more fire-times, then the
Trigger
's misfire instruction will be applied.
resumeTrigger
in interface org.quartz.spi.JobStore
public List<String> resumeTriggers(GroupMatcher<TriggerKey> matcher)
Resume (un-pause) all of the
in the
given group.
Trigger
s
If any Trigger
missed one or more fire-times, then the
Trigger
's misfire instruction will be applied.
resumeTriggers
in interface org.quartz.spi.JobStore
public void resumeJob(JobKey jobKey)
Resume (un-pause) the
with
the given name.
JobDetail
If any of the Job
'sTrigger
s missed one
or more fire-times, then the Trigger
's misfire
instruction will be applied.
resumeJob
in interface org.quartz.spi.JobStore
public Collection<String> resumeJobs(GroupMatcher<JobKey> matcher)
Resume (un-pause) all of the
in the given group.
JobDetail
s
If any of the Job
s had Trigger
s that
missed one or more fire-times, then the Trigger
's
misfire instruction will be applied.
resumeJobs
in interface org.quartz.spi.JobStore
public void pauseAll()
Pause all triggers - equivalent of calling pauseTriggerGroup(group)
on every group.
When resumeAll()
is called (to un-pause), trigger misfire
instructions WILL be applied.
pauseAll
in interface org.quartz.spi.JobStore
#resumeAll(SchedulingContext)
,
#pauseTriggerGroup(SchedulingContext, String)
public void resumeAll()
Resume (un-pause) all triggers - equivalent of calling resumeTriggerGroup(group)
on every group.
If any Trigger
missed one or more fire-times, then the
Trigger
's misfire instruction will be applied.
resumeAll
in interface org.quartz.spi.JobStore
#pauseAll(SchedulingContext)
protected boolean applyMisfire(org.quartz.simpl.TriggerWrapper tw)
protected String getFiredTriggerRecordId()
public List<org.quartz.spi.OperableTrigger> acquireNextTriggers(long noLaterThan, int maxCount, long timeWindow)
Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler.
acquireNextTriggers
in interface org.quartz.spi.JobStore
#releaseAcquiredTrigger(SchedulingContext, Trigger)
public void releaseAcquiredTrigger(org.quartz.spi.OperableTrigger trigger)
Inform the JobStore
that the scheduler no longer plans to
fire the given Trigger
, that it had previously acquired
(reserved).
releaseAcquiredTrigger
in interface org.quartz.spi.JobStore
public List<org.quartz.spi.TriggerFiredResult> triggersFired(List<org.quartz.spi.OperableTrigger> firedTriggers)
Inform the JobStore
that the scheduler is now firing the
given Trigger
(executing its associated Job
),
that it had previously acquired (reserved).
triggersFired
in interface org.quartz.spi.JobStore
public void triggeredJobComplete(org.quartz.spi.OperableTrigger trigger, JobDetail jobDetail, Trigger.CompletedExecutionInstruction triggerInstCode)
Inform the JobStore
that the scheduler has completed the
firing of the given Trigger
(and the execution its
associated Job
), and that the
in the given JobDataMap
JobDetail
should be updated if the Job
is stateful.
triggeredJobComplete
in interface org.quartz.spi.JobStore
protected void setAllTriggersOfJobToState(JobKey jobKey, int state)
protected String peekTriggers()
public Set<String> getPausedTriggerGroups() throws JobPersistenceException
getPausedTriggerGroups
in interface org.quartz.spi.JobStore
JobPersistenceException
org.quartz.spi.JobStore#getPausedTriggerGroups(org.quartz.core.SchedulingContext)
public void setInstanceId(String schedInstId)
setInstanceId
in interface org.quartz.spi.JobStore
public void setInstanceName(String schedName)
setInstanceName
in interface org.quartz.spi.JobStore
public void setThreadPoolSize(int poolSize)
setThreadPoolSize
in interface org.quartz.spi.JobStore
public long getEstimatedTimeToReleaseAndAcquireTrigger()
getEstimatedTimeToReleaseAndAcquireTrigger
in interface org.quartz.spi.JobStore
public boolean isClustered()
isClustered
in interface org.quartz.spi.JobStore
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |