+-
Spring 3.1和Quartz中的作业侦听器和触发器侦听器
我正在使用 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中的作业侦听器和触发器侦听器 - 乐贴网