使用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>
这样一个任务定时出发已经搞定了。具体的日期配置在定制的触发器中还可以进一步的配置.
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>
这样一个任务定时出发已经搞定了。具体的日期配置在定制的触发器中还可以进一步的配置.