服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java实用技巧:定时执行任务的三种方法

1)java.util.timer
这个方法应该是最常用的,不过这个方法需要手工启动你的任务:
timer timer=new timer();
timer.schedule(new listbydaytimertask(),10000,86400000);
这里的listbydaytimertask类必须extends timertask里面的run()方法。

2)servletcontextlistener
这个方法在web容器环境比较方便,这样,在web server启动后就可以
自动运行该任务,不需要手工操作。
将listbydaylistener implements servletcontextlistener接口,在
contextinitialized方法中加入启动timer的代码,在contextdestroyed
方法中加入cancel该timer的代码;然后在web.xml中,加入listener:
< listener>
< listener-class>com.qq.customer.listbydaylistener< /listener-class>
< /listener>

3)org.springframework.scheduling.timer.scheduledtimertask
如果你用spring,那么你不需要写timer类了,在schedulingcontext-timer
.xml中加入下面的内容就可以了:
< ?xml version="1.0" encoding="utf-8"?>
< !doctype beans public "-//spring//dtd bean//en" "http://www.springframework.org/dtd/spring-beans.dtd">

< beans>
< bean id="timer" class="org.springframework.scheduling.timer.timerfactorybean">
< property name="scheduledtimertasks">
< list>
< ref local="mytimetask1"/>
< /list>
< /property>
< /bean>

< bean id="mytimetask" class="com.qq.timer.listbydaytimertask"/>

< bean id="mytimetask1" class="org.springframework.scheduling.timer.scheduledtimertask">
< property name="timertask">
< ref bean="mytimetask"/>
< /property>
< property name="delay">
< value>10000< /value>
< /property>
< property name="period">
< value>86400000< /value>
< /property>
< /bean>
< /beans>


扫描关注微信公众号