javaeyetodj 发表于 2013-2-3 11:18:06

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 BugXmlTimermytimer = 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>
页: [1]
查看完整版本: java定时器