JAVA WEB程序中添加定时器

开心编程网   2010年02月21日 14:10   评论»  

//这是我的定时器类,用来定时执行某段任务;

package com.my.time;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Timer;

public class BugXmlTimer  {

public   Timer timer;

public void timerStart(){

timer = new Timer();

Date datetime=new Date();

Date midnightDate=new Date();

SimpleDateFormat sdf1 = new SimpleDateFormat(“yyyy-MM-dd”);

SimpleDateFormat sdf2 = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

try {

midnightDate = sdf2.parse(sdf1.format(datetime)+” 23:00:00″);

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

long in=midnightDate.getTime()-datetime.getTime();

System.out.println(“before task”);

//立刻执行,然后每隔30s执行一次

timer.schedule(new BugXmlTimerTask(), 0,30000);

}

public void timerStop(){

if(timer!=null)

timer.cancel();

}

public static void main(String[] args){

BugXmlTimer myTimer=new BugXmlTimer();

// TODO Auto-generated method stub

myTimer.timerStart();

}

}

//这是执行任务的类,即每隔一段时间要做的事情在这里

package com.my.time;

import java.util.TimerTask;

public class BugXmlTimerTask extends TimerTask {

@Override

public void run() {

System.out.print(“run task”);

}

}

//以下是出发定时操作的类,该类实现了ServletContextListener

public class MyTimerListener implements ServletContextListener {

private BugXmlTimer  mytimer = new BugXmlTimer  ();

public void contextInitialized(ServletContextEvent event) {

mytimer.timerStart();

}

public void contextDestroyed(ServletContextEvent event) {

mytimer.timerStop();

}

}

然后在web.xml里部署一下,即可在程序启动后运行定时器了!

<listener>

<listener-class>com.my.time.MyTimerListener </listener-class>

</listener>

欢迎您发表评论:

赞助商链接

最新新闻动态

友情链接

关于站点 - 联系我们 - 网站大事 - 友情链接 - 免责声明 - 意见反馈 - 网站投稿 - 站点地图
版权所有开心编程网禁止转载! Copyright © 2009-2010 All Rights Reserved. Email:hbhgfzk@126.com