java定时器


转自 http://hillen-chan.iteye.com/blog/756770
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> 

你可能感兴趣的:(java,Web,xml,Blog)