使用Java基础定时执行程序


我们在项目中,经常会碰到这样一种需求,就是让某个程序在某个固定的时间去运行,比如定时备份操作。在Java的J2SE的API中可以很容易做到这一点。
让我们需要定时执行的类继承自java.util.TimerTask中的TimerTask类,把需要执行的方法放入run方法中:

1  
   import 
    java.util.TimerTask;
 
    2  
   
 
    3  
   public 
     
   class 
    MyTimerTask  
   extends 
    TimerTask {
 
    4  
   
 
    5  
       @Override
 
    6  
        
   public 
     
   void 
    run() {
 
    7  
           System.out.println( 
   " 
   备份程序运行…… 
   " 
   );
 
    8  
       }
 
    9  
   
 
   10  
   }
 
   11

然后我们是java.util.Timer类来执行这个方法,测试类:


1  
   import 
    java.util.Timer;
 
    2  
   
 
    3  
   public 
     
   class 
    Test {
 
    4  
   
 
    5  
        
   public 
     
   static 
     
   void 
    main(String[] args) {
 
    6  
           Timer timer  
   = 
     
   new 
    Timer();
 
    7  
           timer.schedule( 
   new 
    MyTimerTask(),  
   1000 
   );
 
    8  
   
 
    9  
       }
 
   10  
   
 
   11  
   }
 
   12

我们看到控制台输出:




备份程序运行…… 那么我们想让这个程序每隔五秒钟运行一次呢,可以这样来做:

1  timer.schedule( new  MyTimerTask(), 0 , 5000 );

我们传入的第二个参数是方法首次执行时间,第三个参数是方法执行的间隔时间,我们可以在控制台看到:

备份程序运行……
备份程序运行……
备份程序运行……
备份程序运行……

当然我们也可以使用Date来实现定时操作:

1     Timer timer  
   = 
     
   new 
    Timer();
    2  
           Date date 
   = 
     
   new 
    Date( 
   107 
   , 
   05 
   , 
   21 
   , 
   00 
   , 
   01 
   , 
   10 
   );
    3  
           timer.schedule( 
   new 
    MyTimerTask(),date, 
   5000 
   );