tomcat启动时执行一个任务应该怎么配置?
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class TestListener implements ServletContextListener {
private Timer timer = null;
public void contextInitialized(ServletContextEvent event) {
timer = new Timer(true);
timer.schedule(new TestTimer(), 0, 86400000);//milliseconds
}
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
}
}
------------------------------------------
import java.util.TimerTask;
public class TestTimer extends TimerTask {
public void run() {
// do something ...
}
}
------------------------------------------
web.xml:
<listener >
<listener-class >test.TestListener </listener-class >
</listener >
我用这种方法配了,也成功了,不过有点小问题,就是这个任务本来应该执行一次创建一个timer,但是实际上创建了好几个timer,请问这是为什么啊?请高手指教
另外,timer定时1分钟,实际上非常不准,有时候2分钟都不执行一次,是我个人的问题还是本来就有这毛病?
------解决方案--------------------我用这种方法配了,也成功了,不过有点小问题,就是这个任务本来应该执行一次创建一个timer,但是实际上创建了好几个timer,请问这是为什么啊?请高手指教
另外,timer定时1分钟,实际上非常不准,有时候2分钟都不执行一次,是我个人的问题还是本来就有这毛病?
本来就是非常不准
不是你的问题
我做过定时的业务
用的quartz组件
你下载quartz-1.6.0.zip里面有帮助文档的
------解决方案--------------------如果要精确定时的话,用timer.scheduleAtFixedRate方法,timer.schedule方法是定时加执行的延迟,所以肯定超过定时的时间.