1.创建spring的配置文件,spring.xml,内容如下:
<bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean" lazy-init="false">
<property name="scheduledTimerTasks">
<list>
<ref local="scheduledTask1"/>
</list>
</property>
</bean>
<bean id="scheduledTask1" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="delay" value="0" />
<property name="period" value="10000" />
<property name="timerTask">
<ref bean="methodInvokingTask1"/>
</property>
</bean>
<bean id="methodInvokingTask1" class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
<property name="targetObject" ref="myTask1"/>
<property name="targetMethod" value="run"/>
</bean>
<bean id="myTask1" class="org.garbagecan.springstudy.schedule.timer.MyTask">
</bean>
2、调度说明
1)定义了一个task,task1。
2)利用spring提供的MethodInvokingTimerTaskFactoryBean类来实现对task类和方法的声明,声明目标对象和方法,从而使spring知道要运行那个类的那个方法。
3)利用ScheduledTimerTask类来配置每个task的启动时间延时,每次启动之间的间隔,当然还有最重要的是需要运行那个对象,这里使用的上面提到的MethodInvokingTimerTaskFactoryBean类的实例。
4)最后定义了一个TimerFactoryBean类,并且把ScheduledTimerTask类的实例作为需要调度的task。
3、WEB中启动定时任务
首先实现 javax.servlet.ServletContextListener接口,同时实现它的contextInitialized (ServletContextEvent event)和contextDestroyed(ServletContextEvent event)两个接口函数。
然后把ServletContextListener部署到您的Web工程中去,在您工程的web.xml配置文件中加入如下三行:
<listener>
<listener-class>com.test.ContextListener</listener-class>
</listener>
网友评论