📄 quartzscheduler.java
字号:
"TriggerListener '" + tl.getName()
+ "' threw exception: " + e.getMessage(), e);
se.setErrorCode(SchedulerException.ERR_TRIGGER_LISTENER);
throw se;
}
}
return vetoedExecution;
}
public void notifyTriggerListenersMisfired(Trigger trigger)
throws SchedulerException {
// build a list of all trigger listeners that are to be notified...
List triggerListeners = buildTriggerListenerList(trigger
.getTriggerListenerNames());
// notify all trigger listeners in the list
java.util.Iterator itr = triggerListeners.iterator();
while (itr.hasNext()) {
TriggerListener tl = (TriggerListener) itr.next();
try {
tl.triggerMisfired(trigger);
} catch (Exception e) {
SchedulerException se = new SchedulerException(
"TriggerListener '" + tl.getName()
+ "' threw exception: " + e.getMessage(), e);
se.setErrorCode(SchedulerException.ERR_TRIGGER_LISTENER);
throw se;
}
}
}
public void notifyTriggerListenersComplete(JobExecutionContext jec,
int instCode) throws SchedulerException {
// build a list of all trigger listeners that are to be notified...
List triggerListeners = buildTriggerListenerList(jec.getTrigger()
.getTriggerListenerNames());
// notify all trigger listeners in the list
java.util.Iterator itr = triggerListeners.iterator();
while (itr.hasNext()) {
TriggerListener tl = (TriggerListener) itr.next();
try {
tl.triggerComplete(jec.getTrigger(), jec, instCode);
} catch (Exception e) {
SchedulerException se = new SchedulerException(
"TriggerListener '" + tl.getName()
+ "' threw exception: " + e.getMessage(), e);
se.setErrorCode(SchedulerException.ERR_TRIGGER_LISTENER);
throw se;
}
}
}
public void notifyJobListenersToBeExecuted(JobExecutionContext jec)
throws SchedulerException {
// build a list of all job listeners that are to be notified...
List jobListeners = buildJobListenerList(jec.getJobDetail()
.getJobListenerNames());
// notify all job listeners
java.util.Iterator itr = jobListeners.iterator();
while (itr.hasNext()) {
JobListener jl = (JobListener) itr.next();
try {
jl.jobToBeExecuted(jec);
} catch (Exception e) {
SchedulerException se = new SchedulerException(
"JobListener '" + jl.getName() + "' threw exception: "
+ e.getMessage(), e);
se.setErrorCode(SchedulerException.ERR_JOB_LISTENER);
throw se;
}
}
}
public void notifyJobListenersWasVetoed(JobExecutionContext jec)
throws SchedulerException {
// build a list of all job listeners that are to be notified...
List jobListeners = buildJobListenerList(jec.getJobDetail()
.getJobListenerNames());
// notify all job listeners
java.util.Iterator itr = jobListeners.iterator();
while (itr.hasNext()) {
JobListener jl = (JobListener) itr.next();
try {
jl.jobExecutionVetoed(jec);
} catch (Exception e) {
SchedulerException se = new SchedulerException(
"JobListener '" + jl.getName() + "' threw exception: "
+ e.getMessage(), e);
se.setErrorCode(SchedulerException.ERR_JOB_LISTENER);
throw se;
}
}
}
public void notifyJobListenersWasExecuted(JobExecutionContext jec,
JobExecutionException je) throws SchedulerException {
// build a list of all job listeners that are to be notified...
List jobListeners = buildJobListenerList(jec.getJobDetail()
.getJobListenerNames());
// notify all job listeners
java.util.Iterator itr = jobListeners.iterator();
while (itr.hasNext()) {
JobListener jl = (JobListener) itr.next();
try {
jl.jobWasExecuted(jec, je);
} catch (Exception e) {
SchedulerException se = new SchedulerException(
"JobListener '" + jl.getName() + "' threw exception: "
+ e.getMessage(), e);
se.setErrorCode(SchedulerException.ERR_JOB_LISTENER);
throw se;
}
}
}
public void notifySchedulerListenersError(String msg, SchedulerException se) {
// build a list of all scheduler listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.schedulerError(msg, se);
} catch (Exception e) {
getLog()
.error(
"Error while notifying SchedulerListener of error: ",
e);
getLog().error(
" Original error (for notification) was: " + msg, se);
}
}
}
public void notifySchedulerListenersSchduled(Trigger trigger) {
// build a list of all scheduler listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.jobScheduled(trigger);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of scheduled job."
+ " Triger=" + trigger.getFullName(), e);
}
}
}
public void notifySchedulerListenersUnschduled(String triggerName,
String triggerGroup) {
// build a list of all scheduler listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.jobUnscheduled(triggerName, triggerGroup);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of unscheduled job."
+ " Triger=" + triggerGroup + "."
+ triggerName, e);
}
}
}
public void notifySchedulerListenersFinalized(Trigger trigger) {
// build a list of all scheduler listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.triggerFinalized(trigger);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of finalized trigger."
+ " Triger=" + trigger.getFullName(), e);
}
}
}
public void notifySchedulerListenersPausedTrigger(String name, String group) {
// build a list of all job listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.triggersPaused(name, group);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of paused trigger/group."
+ " Triger=" + group + "." + name, e);
}
}
}
public void notifySchedulerListenersResumedTrigger(String name, String group) {
// build a list of all job listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.triggersResumed(name, group);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of resumed trigger/group."
+ " Triger=" + group + "." + name, e);
}
}
}
public void notifySchedulerListenersPausedJob(String name, String group) {
// build a list of all job listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.jobsPaused(name, group);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of paused job/group."
+ " Job=" + group + "." + name, e);
}
}
}
public void notifySchedulerListenersResumedJob(String name, String group) {
// build a list of all job listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.jobsResumed(name, group);
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of resumed job/group."
+ " Job=" + group + "." + name, e);
}
}
}
public void notifySchedulerListenersShutdown() {
// build a list of all job listeners that are to be notified...
List schedListeners = getSchedulerListeners();
// notify all scheduler listeners
java.util.Iterator itr = schedListeners.iterator();
while (itr.hasNext()) {
SchedulerListener sl = (SchedulerListener) itr.next();
try {
sl.schedulerShutdown();
} catch (Exception e) {
getLog().error(
"Error while notifying SchedulerListener of shutdown.",
e);
}
}
}
/**
* <p>
* Add the given <code>{@link org.quartz.spi.SchedulerPlugin}</code> to
* the <code>Scheduler</code>. This method expects the plugin's
* "initialize" method to be invoked externally (either before or after
* this method is called).
*/
public void addSchedulerPlugin(SchedulerPlugin plugin) {
schedulerPlugins.add(plugin);
}
public void setJobFactory(JobFactory factory) throws SchedulerException {
if(factory == null)
throw new IllegalArgumentException("JobFactory cannot be set to null!");
getLog().info("JobFactory set to: " + factory);
this.jobFactory = factory;
}
public JobFactory getJobFactory() {
return jobFactory;
}
/**
* Interrupt all instances of the identified InterruptableJob.
*
* @see org.quartz.core.RemotableQuartzScheduler#interrupt(java.lang.String, java.lang.String)
*/
public boolean interrupt(SchedulingContext ctxt, String jobName, String groupName) throws UnableToInterruptJobException {
if(groupName == null)
groupName = Scheduler.DEFAULT_GROUP;
List jobs = getCurrentlyExecutingJobs();
java.util.Iterator it = jobs.iterator();
JobExecutionContext jec = null;
JobDetail jobDetail = null;
Job job = null;
boolean interrupted = false;
while (it.hasNext()) {
jec = (JobExecutionContext)it.next();
jobDetail = jec.getJobDetail();
if (jobName.equals(jobDetail.getName())
&& groupName.equals(jobDetail.getGroup())){
job = jec.getJobInstance();
if (job instanceof InterruptableJob) {
((InterruptableJob)job).interrupt();
interrupted = true;
} else {
throw new UnableToInterruptJobException(
"Job '"
+ jobName
+ "' of group '"
+ groupName
+ "' can not be interrupted, since it does not implement "
+ InterruptableJob.class.getName());
}
}
}
return interrupted;
}
private void shutdownPlugins() {
java.util.Iterator itr = schedulerPlugins.iterator();
while (itr.hasNext()) {
SchedulerPlugin plugin = (SchedulerPlugin) itr.next();
plugin.shutdown();
}
}
private void startPlugins() {
java.util.Iterator itr = schedulerPlugins.iterator();
while (itr.hasNext()) {
SchedulerPlugin plugin = (SchedulerPlugin) itr.next();
plugin.start();
}
}
}
/////////////////////////////////////////////////////////////////////////////
//
// ErrorLogger - Scheduler Listener Class
//
/////////////////////////////////////////////////////////////////////////////
class ErrorLogger implements SchedulerListener {
public static Log getLog() {
return LogFactory.getLog(ErrorL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -