javaweb 定时
2015-12-25 16:25
393 查看
因为需要写了一个简单的定时器,在网上搜了搜,自己改了改,把代码公布出来,方便大家学习。
1、新建一个包,在包里新建一个类,这里我们叫AutoRun类,他要继承ServletContextListener这个接口,代码如下
2、接着是写上段代码的Task类,代码如下
最后一步,我们要在web.xml里配置一下监听,这样程序已启动,就触发了定时器
1、新建一个包,在包里新建一个类,这里我们叫AutoRun类,他要继承ServletContextListener这个接口,代码如下
package com.timer.test; import java.util.Timer; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class AutoRun implements ServletContextListener { private Timer timer = null; public void contextInitialized(ServletContextEvent sce) { timer=new Timer(true); timer.schedule(new Task(),0,1000*60*3);//这个函数的第一个参数是我们要执行的任务,他要继承TimerTask这个类 //,第二个参数为执行任务前等待时间,此处0表示不等待,第三个参数表示我们要定时的时间,单位是ms,比如3*60*1000为三分钟 //这句话就是每个三分钟执行Task里的run方法 } public void contextDestroyed(ServletContextEvent sce) { timer.cancel(); } }
2、接着是写上段代码的Task类,代码如下
package com.timer.test; import java.util.Date; import java.util.Iterator; import java.util.Set; import java.util.TimerTask; public class Task extends TimerTask{ public void run() { //下面这些代码可根据自己的实际需要自己写,下面只是我的代码,可删除 Set set =LinkRequest.map.keySet(); Iterator it = set.iterator(); while(it.hasNext()){ String key = (String) it.next(); Date value = LinkRequest.map.get(key); Date endTime =new Date(); double duration = (endTime.getTime()-value.getTime())/1000; if(duration>300.0){ it.remove(); } System.out.print(duration+"ms"); } } }
最后一步,我们要在web.xml里配置一下监听,这样程序已启动,就触发了定时器
<listener> <listener-class>com.timer.test.AutoRun</listener-class> </listener>
相关文章推荐
- Mootools 1.2教程 定时器和哈希简介
- C#定时器和随机数
- C#中timer定时器用法实例
- JS中自定义定时器让它在某一时刻执行
- JavaScript定时器详解及实例
- 基于jQuery实现的扇形定时器附源码下载
- 跟我学习javascript的定时器
- Qt定时器和随机数详解
- asp.net中Timer无刷新定时器的实现方法
- libevent库的使用--定时器的使用实例
- MySQL定时器EVENT学习笔记
- js函数定时器实现定时读取系统实时连接数
- linux使用select实现精确定时器详解
- Cocos2d-x Schedule定时器的使用实例
- VC定时器的用法实例详解
- javascript设计简单的秒表计时器
- c#定时器和global实现自动job示例
- JavaScript学习笔记之定时器
- js定时器的使用(实例讲解)
- c#定时器使用示例详解