在任务高度中,当任务执行完后,可能要做一些事情,比如日志等.
上一节是执行固定次数的程序,监听的是Trigger,使用TriggerListner
这一节是执行完这个任务后执行日志,监听的是Job, 使用JobListener.
废话不多,代码如下:
配置如下jobListener:
配置listnener到JobDetail:
配置listener到Scheduler:
这里使用的是监听器来监控线程的执行情况,并在合适的时间做相应的处理。
比如任务调度的日志是必须的,这样可以查看调度任务的执行情况
上一节是执行固定次数的程序,监听的是Trigger,使用TriggerListner
这一节是执行完这个任务后执行日志,监听的是Job, 使用JobListener.
废话不多,代码如下:
package test.quartz.spring;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.listeners.JobListenerSupport;
public class JobListener extends JobListenerSupport {
private String name;
public void setName(String name){
this.name= name;
}
public String getName() {
// TODO Auto-generated method stub
return this.name;
}
public void jobWasExecuted(JobExecutionContext context,
JobExecutionException jobException) {
System.out.println("jobWasExecuted");
System.out.println("我要执行另一个任务了!~");
}
}
配置如下jobListener:
<bean id="jobListener" class="test.quartz.spring.JobListener">
<property name="name">
<value>jobListener</value>
</property>
</bean>
配置listnener到JobDetail:
<bean id="jobtask" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>test.quartz.spring.TJob</value>
</property>
<property name="jobListenerNames">
<list>
<value>jobListener</value>
</list>
</property>
</bean>
配置listener到Scheduler:
<bean autowire = "no" class = "org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local ="cron"/>
</list>
</property>
<!-- 添加监听器 -->
<property name="triggerListeners">
<list>
<ref bean="triggerListener"/>
</list>
</property>
<property name="jobListeners">
<list>
<ref bean="jobListener"/>
</list>
</property>
</bean>
这里使用的是监听器来监控线程的执行情况,并在合适的时间做相应的处理。
比如任务调度的日志是必须的,这样可以查看调度任务的执行情况