package com.zdcf.scheduled;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
import com.zdcf.dto.Message;
/**
* 服务器启动时执行的Servlet
* @author liwenqiang
*
*/
public class Global extends HttpServlet implements ServletContextListener {
private static final long serialVersionUID = -8680344467984908901L;
private Timer clearTimer =null; //清空聊天记录用Timer
/**
* 服务器停止时执行该事件
*/
public void contextDestroyed(ServletContextEvent sce) {
clearTimer.cancel();
}
/**
* 服务器启动时进行初始化
*/
public void contextInitialized(ServletContextEvent sce) {
//获取XML配置文件中是否使用线程安全的容器保存消息记录
// boolean isSynch = sce.getServletContext().getInitParameter("isSynch").equals("1")?true:false; //获取是否线程同步的设置
//在Application中创建出消息集合
// Map<String, ConcurrentLinkedQueue<Message>> msglist = null;
//
// if(isSynch){
// msglist = new Hashtable<String, ConcurrentLinkedQueue<Message>>();
// }else {
// msglist = new HashMap<String, ConcurrentLinkedQueue<Message>>();
// }
// sce.getServletContext().setAttribute("totalmsglist", msglist);
//在Application中创建出在线用户集合
// List<String> userlist = null;
// if(isSynch){
// userlist = new Vector<String>();
// }else {
// userlist = new ArrayList<String>();
// }
// sce.getServletContext().setAttribute("userlist", userlist);
//获取XML配置文件中每隔多久执行任务
int task = Integer.parseInt(sce.getServletContext().getInitParameter("refreshTimeInterval"));
if(task > 0){
clearTimer = new Timer();
clearTimer.schedule(ScheduleJob.getInstance(), new Date(), task);
}
}
static class ScheduleJob extends TimerTask {
private static ScheduleJob obj = null;
public static TimerTask getInstance(){
if(obj == null){
obj = new ScheduleJob();
}
return obj;
}
@Override
public void run() {
System.out.println("test1111111111");
}
}
}