代码改变世界

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

2017-02-21 20:48  甘雨路  阅读(1312)  评论(0编辑  收藏  举报
<!-- 在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("定时器,执行相应任务......");
    }
}