1. 程式人生 > >去哪網實習總結:開發定時任務(JavaWeb)

去哪網實習總結:開發定時任務(JavaWeb)

pri simple mod 節點 easy run dsm 16px 發送郵件

本來是以做數據挖掘的目的進去哪網的,結構卻成了系統開發。。

只是還是比較認真的做了三個月,老師非常認同我的工作態度和成果。。

實習立即就要結束了。總結一下幾點之前沒有註意過的變成習慣和問題,分享給大家。


同一時候打個廣告:去哪網內審部招JavaWeb開發實習生。時間很自由,每周一天、周六周日甚至都能夠。時間充裕的小夥伴給我留言啊,掙個零花錢,還能長點經驗。。

。。(保研的、想工作的大四狗最合適只是了。

。。)




事實上定時任務非常easy。js事實上也做過。就是Timer類的 Timer.schedule(TimerTask task, Date time, long period)

方法而已,三個參數各自是:任務、延遲、間隔。

給個完整的代碼:

首先是BugXmlTimer類:

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)+" 10:06:00");
	    } catch (ParseException e) {
	        // TODO Auto-generated catch block
	        e.printStackTrace();
	    }
	    System.out.println("before task");
	    long time = midnightDate.getTime()-datetime.getTime();
	    //立馬運行,然後每隔10s運行一次
	    timer.schedule(new BugXmlTimerTask(), 0, 10000);//time
	}
   
	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();
   }
}


其次是TimerTask類:
<pre name="code" class="java">public class BugXmlTimerTask extends TimerTask {
    @Override
    public void run() {
    	System.out.print("run task");
    	try {
			<strong>sendMail();//下一篇博客教你發送郵件</strong>
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

最後加入Listener類:

public class MyTimerListener implements ServletContextListener {
	
<span style="white-space:pre">	</span>private BugXmlTimer  mytimer = new BugXmlTimer  ();
    public void contextInitialized(ServletContextEvent event) {
        mytimer.timerStart();
    }
    public void contextDestroyed(ServletContextEvent event) {
        mytimer.timerStop();
    }
    
}


最後不要忘了配置web.xml的listener節點:

<listener>
    <listener-class>com.TimeListener.MyTimerListener</listener-class>
</listener>





去哪網實習總結:開發定時任務(JavaWeb)