六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 69|回复: 0

java定时器

[复制链接]

升级  40%

26

主题

26

主题

26

主题

秀才

Rank: 2

积分
110
 楼主| 发表于 2013-2-3 11:18:06 | 显示全部楼层 |阅读模式
转自 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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表