<!-- 在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("定时器,执行相应任务......"); } }
时间: 2024-10-01 03:13:21