+-

我正在使用 Spring 3.0和Quartz 1.6 JDBC Job Store进行作业调度.我想在触发器触发失败时生成电子邮件警报.如何在Spring Quartz中配置Trigger misfire事件侦听器?
最佳答案
1)使用triggerMisfired方法中的代码创建触发器侦听器:
package foo;
import org.quartz.JobExecutionContext;
import org.quartz.Trigger;
import org.quartz.TriggerListener;
import org.quartz.Trigger.CompletedExecutionInstruction;
public class MyTriggerListener implements TriggerListener {
private String name;
public MyTriggerListener(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void triggerComplete(Trigger trigger, JobExecutionContext context,
CompletedExecutionInstruction triggerInstructionCode) {
}
public void triggerFired(Trigger trigger, JobExecutionContext context) {
}
public void triggerMisfired(Trigger trigger) {
// here goes your code for sending email
}
public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) {
return false;
}
}
还可以选择扩展TriggerListenerSupport并仅覆盖triggerMisfired方法:
public class MyTriggerListener extends TriggerListenerSupport {
private String name;
public MyOtherTriggerListener(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public void triggerMisfired(Trigger trigger, JobExecutionContext context) {
// do something with the event
}
}
2)将监听器bean添加到spring配置中:
<bean id="triggerListener"
class="foo.MyTriggerListener">
</bean>
并将侦听器bean与触发器等任何其他属性一起放入SchedulerFactoryBean中.
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
.....
<property name="globalTriggerListeners">
<list>
<ref bean="triggerListener" />
</list>
</property>
...
</bean>
点击查看更多相关文章
转载注明原文:Spring 3.1和Quartz中的作业侦听器和触发器侦听器 - 乐贴网