Java的Timer以及TimerTask类可以帮助我们实现定时器功能,利用servlet监听程序可以实现WEB服务启动之后执行某些工作。两者结合就可以再web应用中实现定时器功能。
1.计划类代码Scheduler
public void sendScheduler(String dateStr){final Timer timer = new Timer();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");ParsePosition pos = new ParsePosition(0);Date currentTime = formatter.parse(dateStr, pos);//计划开始运行之后每间隔1秒运行一次timer.schedule(new TimerTask() {@Overridepublic void run() {//可以放入要执行的方法System.out.println("计划开始了!" + i++);timer.cancel(); //计划取消}}, currentTime, 1000);}
2.编写监听
public class SchedulerListener implements ServletContextListener{public void contextDestroyed(ServletContextEvent arg0) {}public void contextInitialized(ServletContextEvent arg0) {System.out.println("服务开启时间:"+new Date());Scheduler scheduler = new Scheduler();scheduler.sendScheduler("2012-12-26 17:00:00");}}
3.监听配置
<listener><listener-class>org.chh.scheduler.listener.SchedulerListener</listener-class>
</listener>