程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA中定時自動完成任務的實現

JAVA中定時自動完成任務的實現

編輯:關於JAVA

JAVA中定時自動完成任務的實現要用到Java中的定時器TimerTask和監聽器,聽起來貌似有點困難但是實現起來還是比較容易的!紙老虎~~!

下面的列子很詳細,是關於定時向服務器上傳(也可以是其他的動作這是看需要關於上傳我博客有寫過可以參考)文件的列子簡單的4步就可以實現:

1:首先創建動作bean

package com.sun.time2;

public class UploadFile{

/**

*實現上傳的代碼s省略 可以看下我下面的2篇日志

http://blog.163.com/sun__haiming/blog/static/1283090682009918102455128/ 使用smarupload 實現上傳下載[有例子]

http://blog.163.com/sun__haiming/blog/static/128309068201011111948862/ 使用Struts2多文件上傳

*/

public void upload()

{

System.out.println("系統自動的上傳文件了");

}

}

2.創建定時器MyTaker並完成相應的功能

package com.sun.time2;

import Java.util.Calendar;

import Java.util.TimerTask;

import Javax.servlet.ServletContext;

public class MyTaker extends TimerTask {

private static boolean isRun = false;

private ServletContext context ;

private Calendar ca = Calendar.getInstance();

public MyTaker(ServletContext context)

{

this.context = context;

}

@Override

public void run() {

if(!isRun){

if(19==ca.get(Calendar.MINUTE)){

isRun = true;

context.log("正在執行所加載的任務");

UploadFile uf= new UploadFile();

uf.upload();

isRun =false;

context.log("任務順利完成");

}

}

else

{

System.out.println("任務還沒有執行完畢");

}

}

}

3.創建監聽器ContextListener

package com.sun.time2;

import Javax.servlet.ServletContextEvent;

import Javax.servlet.ServletContextListener;

import com.sun.time2.MyTaker;

import Java.util.*;

public class ContexListener implements ServletContextListener{

private Timer timer = null;

@Override

public void contextDestroyed(ServletContextEvent event) {

timer.cancel();

event.getServletContext().log("任務列表已經銷毀了");

}

@Override

public void contextInitialized(ServletContextEvent event) {

timer = new Timer(true);

event.getServletContext().log("服務器已經啟動了");

timer.schedule(new MyTaker(event.getServletContext()), 0 ,90);///每隔多長時間檢查掃描一次

event.getServletContext().log("已經加載了任務的列表");

}

}

4,最後一步就是在web.XML中配置監聽

com.sun.time2.ContexListener

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved