`

Quartz任务的连锁执行

阅读更多
在任务高度中,当任务执行完后,可能要做一些事情,比如日志等.
上一节是执行固定次数的程序,监听的是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>

这里使用的是监听器来监控线程的执行情况,并在合适的时间做相应的处理。
比如任务调度的日志是必须的,这样可以查看调度任务的执行情况
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics