JAVA線程定時器(web)

在J2EE中,web應用總有定時更新數據或者緩存的時候,除了spring中用的quartz 外還有線程方式,可能很少被關注.

package com.dtserver.client.listener;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
DTServer各種線程與定時任務的啓動
 */
public class ServerSocketListener implements ServletContextListener {
	
	//定時
	private Timer timer;
	

	//在服務器啓動時,啓動服務器線程。
		
		try {
			interval = Integer.valueOf(XmlUtil.getScanDtDataInterval()) * 60000;//三分鐘一次
			//interval = 30000;
		} catch (Exception exception) {
			interval = 3 * 60000;
		}
		timer.schedule(new SendData(), 0, interval);
		
		
	}

}
被調用的類

package com.dtserver.client.logic;

import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.TimerTask;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SendData extends TimerTask {

	private static final Log log = LogFactory.getLog(SendData.class);

	private static final String ASURA_FILE_NAME = "/config/webservice_url.properties";

	private final static Properties props;

	static {
		props = new Properties();
		try {
			props.load(WebFrameAction.class
					.getResourceAsStream(XXX));
		} catch (IOException e) {
			throw new RuntimeException("can't load systemconfig.properties", e);
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public void run() {
		
				log.info("開始上傳的時間" + new Date());

				
	}


}



web.xml

要想在web項目中啓動必須在這裏配入口.

	<!--服務器啓動時,啓動服務器線程-->
    <listener>
        <description>Socket服務器線程隨服務器啓動而啓動</description>
        <listener-class>com.dtserver.client.listener.ServerSocketListener</listener-class>
    </listener>
    

看效果去




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章