📄 quartzscheduler.java
字号:
} else
return null;
return ft;
}
private String newTriggerId() {
long r = random.nextLong();
if (r < 0) r = -r;
return "MT_"
+ Long.toString(r, 30 + (int) (System.currentTimeMillis() % 7));
}
/**
* <p>
* Trigger the identified <code>{@link org.quartz.Job}</code> (execute it
* now) - with a non-volatile trigger.
* </p>
*/
public void triggerJob(SchedulingContext ctxt, String jobName,
String groupName, JobDataMap data) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
Trigger trig = new org.quartz.SimpleTrigger(newTriggerId(),
Scheduler.DEFAULT_MANUAL_TRIGGERS, jobName, groupName,
new Date(), null, 0, 0);
trig.setVolatility(false);
trig.computeFirstFireTime(null);
if(data != null)
trig.setJobDataMap(data);
boolean collision = true;
while (collision) {
try {
resources.getJobStore().storeTrigger(ctxt, trig, false);
collision = false;
} catch (ObjectAlreadyExistsException oaee) {
trig.setName(newTriggerId());
}
}
notifySchedulerThread();
notifySchedulerListenersSchduled(trig);
}
/**
* <p>
* Trigger the identified <code>{@link org.quartz.Job}</code> (execute it
* now) - with a volatile trigger.
* </p>
*/
public void triggerJobWithVolatileTrigger(SchedulingContext ctxt,
String jobName, String groupName, JobDataMap data) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
Trigger trig = new org.quartz.SimpleTrigger(newTriggerId(),
Scheduler.DEFAULT_MANUAL_TRIGGERS, jobName, groupName,
new Date(), null, 0, 0);
trig.setVolatility(true);
trig.computeFirstFireTime(null);
if(data != null)
trig.setJobDataMap(data);
boolean collision = true;
while (collision) {
try {
resources.getJobStore().storeTrigger(ctxt, trig, false);
collision = false;
} catch (ObjectAlreadyExistsException oaee) {
trig.setName(newTriggerId());
}
}
notifySchedulerThread();
notifySchedulerListenersSchduled(trig);
}
/**
* <p>
* Pause the <code>{@link Trigger}</code> with the given name.
* </p>
*
*/
public void pauseTrigger(SchedulingContext ctxt, String triggerName,
String groupName) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().pauseTrigger(ctxt, triggerName, groupName);
notifySchedulerThread();
notifySchedulerListenersPausedTrigger(triggerName, groupName);
}
/**
* <p>
* Pause all of the <code>{@link Trigger}s</code> in the given group.
* </p>
*
*/
public void pauseTriggerGroup(SchedulingContext ctxt, String groupName)
throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().pauseTriggerGroup(ctxt, groupName);
notifySchedulerThread();
notifySchedulerListenersPausedTrigger(null, groupName);
}
/**
* <p>
* Pause the <code>{@link org.quartz.JobDetail}</code> with the given
* name - by pausing all of its current <code>Trigger</code>s.
* </p>
*
*/
public void pauseJob(SchedulingContext ctxt, String jobName,
String groupName) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().pauseJob(ctxt, jobName, groupName);
notifySchedulerThread();
notifySchedulerListenersPausedJob(jobName, groupName);
}
/**
* <p>
* Pause all of the <code>{@link org.quartz.JobDetail}s</code> in the
* given group - by pausing all of their <code>Trigger</code>s.
* </p>
*
*/
public void pauseJobGroup(SchedulingContext ctxt, String groupName)
throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().pauseJobGroup(ctxt, groupName);
notifySchedulerThread();
notifySchedulerListenersPausedJob(null, groupName);
}
/**
* <p>
* Resume (un-pause) the <code>{@link Trigger}</code> with the given
* name.
* </p>
*
* <p>
* If the <code>Trigger</code> missed one or more fire-times, then the
* <code>Trigger</code>'s misfire instruction will be applied.
* </p>
*
*/
public void resumeTrigger(SchedulingContext ctxt, String triggerName,
String groupName) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().resumeTrigger(ctxt, triggerName, groupName);
notifySchedulerThread();
notifySchedulerListenersResumedTrigger(triggerName, groupName);
}
/**
* <p>
* Resume (un-pause) all of the <code>{@link Trigger}s</code> in the
* given group.
* </p>
*
* <p>
* If any <code>Trigger</code> missed one or more fire-times, then the
* <code>Trigger</code>'s misfire instruction will be applied.
* </p>
*
*/
public void resumeTriggerGroup(SchedulingContext ctxt, String groupName)
throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().resumeTriggerGroup(ctxt, groupName);
notifySchedulerThread();
notifySchedulerListenersResumedTrigger(null, groupName);
}
public Set getPausedTriggerGroups(SchedulingContext ctxt) throws SchedulerException {
return resources.getJobStore().getPausedTriggerGroups(ctxt);
}
/**
* <p>
* Resume (un-pause) the <code>{@link org.quartz.JobDetail}</code> with
* the given name.
* </p>
*
* <p>
* If any of the <code>Job</code>'s<code>Trigger</code> s missed one
* or more fire-times, then the <code>Trigger</code>'s misfire
* instruction will be applied.
* </p>
*
*/
public void resumeJob(SchedulingContext ctxt, String jobName,
String groupName) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().resumeJob(ctxt, jobName, groupName);
notifySchedulerThread();
notifySchedulerListenersResumedJob(jobName, groupName);
}
/**
* <p>
* Resume (un-pause) all of the <code>{@link org.quartz.JobDetail}s</code>
* in the given group.
* </p>
*
* <p>
* If any of the <code>Job</code> s had <code>Trigger</code> s that
* missed one or more fire-times, then the <code>Trigger</code>'s
* misfire instruction will be applied.
* </p>
*
*/
public void resumeJobGroup(SchedulingContext ctxt, String groupName)
throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
resources.getJobStore().resumeJobGroup(ctxt, groupName);
notifySchedulerThread();
notifySchedulerListenersResumedJob(null, groupName);
}
/**
* <p>
* Pause all triggers - equivalent of calling <code>pauseTriggerGroup(group)</code>
* on every group.
* </p>
*
* <p>
* When <code>resumeAll()</code> is called (to un-pause), trigger misfire
* instructions WILL be applied.
* </p>
*
* @see #resumeAll(SchedulingContext)
* @see #pauseTriggerGroup(SchedulingContext, String)
* @see #pause()
*/
public void pauseAll(SchedulingContext ctxt) throws SchedulerException {
validateState();
resources.getJobStore().pauseAll(ctxt);
notifySchedulerThread();
notifySchedulerListenersPausedTrigger(null, null);
}
/**
* <p>
* Resume (un-pause) all triggers - equivalent of calling <code>resumeTriggerGroup(group)</code>
* on every group.
* </p>
*
* <p>
* If any <code>Trigger</code> missed one or more fire-times, then the
* <code>Trigger</code>'s misfire instruction will be applied.
* </p>
*
* @see #pauseAll(SchedulingContext)
*/
public void resumeAll(SchedulingContext ctxt) throws SchedulerException {
validateState();
resources.getJobStore().resumeAll(ctxt);
notifySchedulerThread();
notifySchedulerListenersResumedTrigger(null, null);
}
/**
* <p>
* Get the names of all known <code>{@link org.quartz.Job}</code> groups.
* </p>
*/
public String[] getJobGroupNames(SchedulingContext ctxt)
throws SchedulerException {
validateState();
return resources.getJobStore().getJobGroupNames(ctxt);
}
/**
* <p>
* Get the names of all the <code>{@link org.quartz.Job}s</code> in the
* given group.
* </p>
*/
public String[] getJobNames(SchedulingContext ctxt, String groupName)
throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
return resources.getJobStore().getJobNames(ctxt, groupName);
}
/**
* <p>
* Get all <code>{@link Trigger}</code> s that are associated with the
* identified <code>{@link org.quartz.JobDetail}</code>.
* </p>
*/
public Trigger[] getTriggersOfJob(SchedulingContext ctxt, String jobName,
String groupName) throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
return resources.getJobStore().getTriggersForJob(ctxt, jobName,
groupName);
}
/**
* <p>
* Get the names of all known <code>{@link org.quartz.Trigger}</code>
* groups.
* </p>
*/
public String[] getTriggerGroupNames(SchedulingContext ctxt)
throws SchedulerException {
validateState();
return resources.getJobStore().getTriggerGroupNames(ctxt);
}
/**
* <p>
* Get the names of all the <code>{@link org.quartz.Trigger}s</code> in
* the given group.
* </p>
*/
public String[] getTriggerNames(SchedulingContext ctxt, String groupName)
throws SchedulerException {
validateState();
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
return resources.getJobStore().getTriggerNames(ctxt, groupName);
}
/**
* <p>
* Get the <code>{@link JobDetail}</code> for the <code>Job</code>
* instance with the given name and group.
* </p>
*/
public JobDetail getJobDetail(SchedulingContext ctxt, String jobName,
String jobGroup) throws SchedulerException {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -