javaWeb定时器

王朝学院·作者佚名  2009-12-20  
宽屏版  字体: |||超大  

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

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>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huangdaosheng110/archive/2009/12/17/5026645.aspx

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有