Java定時任務

1. 需要執行的任務:

package com.sun.xmldownload;

import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimerTask;

public class ExtendTimerTask extends TimerTask {
	
    private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    @Override
    public void run() {
        try {
            // ---------------------------------------------------------------------------
            //Here is your task
            download dl = new download();
            String filePath = "D:/apache-tomcat-7.0.26/webapps/ProjectTest/upload";   
            URL url = new URL("http://Test/ProjectTest/cms/123456wsxcde/esdgc56732/1.pdf");   
            dl.downloadFile(url,filePath);
            // ---------------------------------------------------------------------------
            
            System.out.println("Execute time:" + formatter.format(Calendar.getInstance().getTime()));
        } catch (Exception e) {
            System.out.println("Timer Error");
        }
    }
}

2. 任務的時間設置:
package com.sun.xmldownload;
 
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;

public class TimerManager {
    //Time Interval
     private static final long INTERVAL = 24 * 60 * 60 * 1000;
     
     public TimerManager() {
          Calendar calendar = Calendar.getInstance(); 
                 
          // Task Time
          calendar.set(Calendar.HOUR_OF_DAY, 11);
          calendar.set(Calendar.MINUTE, 27);
          calendar.set(Calendar.SECOND, 0);
          
          // Task Time Compare
          Date date=calendar.getTime();
          if (date.before(new Date())) {
              date = this.addDay(date, 1);
          }
           
          Timer timer = new Timer();
           
          ExtendTimerTask task = new ExtendTimerTask();
          
          //Execute task
          timer.schedule(task, date, INTERVAL);
	}

	public Date addDay(Date date, int num) {
		Calendar startDT = Calendar.getInstance();
		startDT.setTime(date);
		startDT.add(Calendar.DAY_OF_MONTH, num);
		return startDT.getTime();
	}
}

3. 監聽器:
package com.sun.xmldownload;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class TimerListener implements ServletContextListener {
 
    public void contextInitialized(ServletContextEvent sce) {
	// Start TimerManager
	new TimerManager();
    }
 
    public void contextDestroyed(ServletContextEvent sce) {
        // TODO Auto-generated method stub
    	
    }
 
}

4. 在web.xml中添加監聽器:
    <!--TimerListener 監聽器-->
	<listener>
	    <listener-class>com.sun.xmldownload.TimerListener</listener-class>
	</listener>


發佈了127 篇原創文章 · 獲贊 109 · 訪問量 61萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章