spring2.5.2中使用Quartz任务调度

使用spring2.5.2的quartz做了一个任务调度,现在记下来
1,先写一个任务类该类继承QuartzJobBean实现executeInternal(JobExecutionContext ctx)方法,即在该方法中写自己要实现的业务逻辑,显然spring使用了模板模式。我的具体类如下:
package quartz;

import org.springframework.scheduling.quartz.QuartzJobBean;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class ExampleJob extends QuartzJobBean {

    private int timeout;
     
      public void setTimeout(int timeout) {
        this.timeout = timeout;
      }
   
    protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
        System.out.println("test.........");
      }


}

2,配置任务调度:在applicationContext.xml中配置该类如下:

<!-- 定制任务 -->
    <bean id="job" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="quartz.ExampleJob" />
        <property name="jobDataAsMap">
            <map>
                <entry key="timeout" value="5" />
            </map>
        </property>
    </bean>
其中timeout是通过JobExecutionContext带入了ExampleJob
3,然后配置触发器如下:
<!-- 定制触发器 -->
    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
         <!-- see the example of method invoking job above -->
    <property name="jobDetail" ref="job" />
    <!-- 10 seconds -->
    <property name="startDelay" value="10000" />
    <!-- repeat every 50 seconds -->
    <property name="repeatInterval" value="50000" />
    </bean>

该触发器告诉在如期启动的10秒后每50秒执行一次任务
4,将触发器添加如任务调度队列中
<!-- 添加任务调度 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
        <list>
            <ref bean="simpleTrigger" />
        </list>
    </property>
    </bean>
这样一个任务定时出发已经搞定了。具体的日期配置在定制的触发器中还可以进一步的配置.

你可能感兴趣的:(spring,bean,xml,quartz)