javaのwebタスクアプリケーション:タイミング実行タスク


回転:
http://dev.yesky.com/355/3407855.shtml
WEBアプリでタイミングタスクを実現する簡便な方法
webモードでは、定期的にいくつかのタスクを実行するには、quartzなどの第三者ソースツールを使う以外に、TimerとTimeTaskを使用して指定されたタイミングタスクを完了することができます.
第一歩:タスク管理クラスを作成し、Servlet Contect Listenerインターフェースを実現する.
以下は参照フラグメントです.   
public class TaskManager implements ServletContextListener {    
/**   
  *          
  */   
public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;    
/**   
  *           
  */   
public static final long PERIOD_WEEK = PERIOD_DAY * 7;    
/**   
  *       
  */   
public static final long NO_DELAY = 0;    
/**   
  *       
  */   
private Timer timer;    
/**   
  *  Web             
  */   
public void contextInitialized(ServletContextEvent event) {    
        //         
  timer = new Timer("      ",true);     
  //      ,  (4   )        
  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);    
//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);    
}    
/**   
  *  Web            
  */   
public void contextDestroyed(ServletContextEvent event) {    
  timer.cancel(); //          
}    
}   
javaコード
以下は参照フラグメントです.   
public class BackUpTableTask extends TimerTask {     
        private static Log log = LogFactory.getLog(BackUpTableTask.class);     
        private static boolean isRunning = false;     
       public void run() {     
                  if (!isRunning) {     
                              isRunning = true;     
                               log.debug("      ..."); //         
                                  //working  add what you want to do     
                              log.debug("      ..."); //         
                              isRunning = false;     
                    } else {     
                             log.debug("           ..."); //                
                    }     
       }     
}   
ステップ3:ウェブにモニターを追加する
xmlコード
以下は参照フラグメントです.   
  
 <listener>   
  <listener-class>***.TaskManager</listener-class>   
  <description>        </description>   
 </listener> 
 
webサーバが起動すると、ジョブも起動され、周期的に実行されます.
ステップ2:時間タスククラスを作成します.