1、创建业务处理类
public class PalpitationCheckTask { public void run() { System.out.println("测试定时器"); } }
说明:上面的run方法是用来进行业务处理的方法
2、在springmvc-servlet.xml文件中配置该处理类
<bean id="palpitationTask" class="com.wkx.palpitation.task.PalpitationCheckTask"></bean>
3、在springmvc-servlet.xml文件中配置工作工厂方法反射类
<!-- 定时器执行的业务类 --> <bean id="palAlarmDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="palpitationTask" /> </property> <property name="targetMethod"> <value>run</value> </property> </bean>
4、在springmvc-servlet.xml文件中配置触发器
<!-- 配置触发器,每隔多久触发一次(定时同步告警日志) --> <bean id="palAlarmTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail"> <ref bean="palAlarmDetail" /> </property> <!-- 延时时间,毫秒级 --> <property name="startDelay"> <value>10000</value> </property> <!-- 每隔多久执行一次,毫秒级 --> <property name="repeatInterval"> <value>120000</value> </property> </bean>
注:上面配置的是每隔多久执行一次,也可以配置定时执行
<!-- 定义触发器,也就是每天的什么时候触发 --> <bean id="warnTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="warnDetail" /> </property> <property name="cronExpression"> <value>0 0 3 * * ?</value> </property> </bean>
5、在springmvc-servlet.xml文件中配置定时器工厂类
<!-- 通用定时器工厂 --> <bean id="commonScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="palAlarmTrigger" /> </list> </property> <property name="autoStartup" value="true"/> <property name="quartzProperties"> <props> <prop key="org.quartz.threadPool.threadCount">1</prop> </props> </property> </bean>注:上面list可以添加多个触发器,就是一个工厂可以管理多个触发器