Java 基于quartz实现定时 之二(XML方式配置)

时间:2024-10-23 13:04:56
<!-- 在spring核心配置文件中进行如下配置 -->    

    <!-- Spring基于quartz定时任务 -->
<bean id="triggerByBeanTwo" class="cn.zr.pringmvctest.trigger.TriggerByBeanTwo"></bean>
<!-- jobDetail -->
<bean id="triggerByBeanTwoJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 要调用的任务目标对象 -->
<property name="targetObject" ref="triggerByBeanTwo" />
<!-- 需要调用的任务目标对象对应方法 -->
<property name="targetMethod" value="simpleMission" />
<!--
是否支持并发
false比如一个定时任务尚未结束的时候,不能再次执行,必须等它执行完毕才能执行
true和上面相反
-->
<property name="concurrent" value="false" />
</bean> <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<!-- jobDetail,触发器需要执行的任务调度 -->
<property name="jobDetail" ref="triggerByBeanTwoJob" />
<!-- startDelay容器启动后延迟10秒 -->
<property name="startDelay" value="1000" />
<!-- 重复执行方法的周期 -->
<property name="repeatInterval" value="5000" />
</bean> <!-- Spring基于quartz定时任务 -->
<bean id="triggerByBean" class="cn.zr.pringmvctest.trigger.TriggerByBean"></bean>
<!-- jobDetail -->
<bean id="triggerJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 要调用的任务目标对象 -->
<property name="targetObject" ref="triggerByBean" />
<!-- 需要调用的任务目标对象对应方法 -->
<property name="targetMethod" value="triggerAction" />
<!--
是否支持并发
false比如一个定时任务尚未结束的时候,不能再次执行,必须等它执行完毕才能执行
true和上面相反
-->
<property name="concurrent" value="false" />
</bean>
<!-- 定义一个触发器 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- jobDetail,触发器需要执行的任务调度 -->
<property name="jobDetail" ref="triggerJob" />
<!-- 时间表达式 -->
<property name="cronExpression" value="0 0-55 20 * * ?" />
<!-- startDelay容器启动后延迟10秒 -->
<property name="startDelay" value="1000" />
</bean>
<!-- 触发链 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
<ref bean="simpleTrigger" />
</list>
</property>
package cn.zr.pringmvctest.trigger;

public class TriggerByBean {

    public void triggerAction() {
System.out.println("定时执行该方法");
}
}
package cn.zr.pringmvctest.trigger;

public class TriggerByBeanTwo {

    public void simpleMission() {
System.out.println("定时器,执行相应任务......");
}
}