采用web自动加载timermanager来管理timer链,在class更新服务器热加载后会发生异常。这要求对timermanager进行一些特殊的处理才能保证timer链的正确性。
使用spring framework中提供的timertask自动加载功能可以非常容易的实现定时器链的管理。同时,采用spring framework的这一功能可以非常容易的对定时器进行添加、删除。
1.在web.xml中申明
<context-param>
<param-name>contextconfiglocation</param-name>
<param-value>/web-inf/schedulingcontext-timer.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.contextloaderservlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
2.在schedulingcontext-timer.xml描述用户的定时器
<bean id="timer" class="org.springframework.scheduling.timer.timerfactorybean">
<property name="scheduledtimertasks">
<list>
<ref local="jorwangscheduledtimertask1"/>
</list>
</property>
</bean>
<bean id="jortimetask1" class="workflow.common.mytimer">
</bean>
<bean id="jorwangscheduledtimertask1" class="org.springframework.scheduling.timer.scheduledtimertask">
<property name="timertask"><ref bean="jortimetask1"/></property>
<property name="delay"><value>10000</value></property>
<property name="period"><value>86400000</value></property>
</bean>
3.编写workflow.common.mytimer定时器
这样就轻松完成了定时器的功能。如果需要修改、增加、删除定时器,只需要对2、3步的内容进行调整就可以实现。
闽公网安备 35060202000074号