⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cachesitemonitor.java

📁 淘客在线客服管理系统(TaokeOCS V3.2)
💻 JAVA
字号:
package msg;
import msg.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.sql.*;
//import java.net.*;
//import java.text.SimpleDateFormat;

/**
  *用来缓存站点信息
  */
public class CacheSiteMonitor implements Runnable{
	static Hashtable sites=new Hashtable(); //站点
	static Hashtable times=new Hashtable(); //对应站点的最新更新时间
	//static   public   Sites   instance;     	
	//static int counter=0;
	private static long monitorInterval = 5 * 60 * 1000; 
	private static boolean threadsOn = false;
	private static long maxIdleTime=5 * 60 * 1000;	 
	public CacheSiteMonitor(){ 
		if(threadsOn==false){			 	
			threadsOn=true; 	   		 
			Thread myself=new Thread(this);
			myself.start();			
	   	}		  
	} 
	public void run(){			 
		while (threadsOn){  				  
			try{						 			
				checkSites();
				collectGarbage();			 
				Thread.sleep(monitorInterval); // 
			}catch (InterruptedException e1) {}   
			catch (Exception e) {
				 
			} 
				
		}
	} 
	static public Site getSite(String domain){
		times.put(domain,new Long(System.currentTimeMillis() )); //更新时间	 
 		return (msg.Site)sites.get(domain);
  	}
	static public void addSite(String domain,msg.Site site){
		sites.put(domain,site);
		times.put(domain,new Long(System.currentTimeMillis() ));
	}
	static public void removeSite(String domain){
		times.remove(domain);
		sites.remove(domain);
	}
	private void checkSites(){
		Enumeration enu=times.keys();
		String domain=null;
		long lastTime=0;	
		while(enu.hasMoreElements()){
			try{
				domain= (String)enu.nextElement();
				lastTime=((Long)times.get(domain)).longValue();
				if(lastTime < System.currentTimeMillis()-maxIdleTime){
					removeSite(domain);
				}
			}catch(Exception e){}
		}
	}
	static public String getAllSites(){
		Enumeration enu=sites.keys();		 
		StringBuffer sb=new StringBuffer();
		//sb.append("counter:"+counter++);
      		while(enu.hasMoreElements()){
			sb.append( (String)enu.nextElement() );
			sb.append("<br>");
		}
		return sb.toString();
	}
	//释放垃圾内存
	private void collectGarbage(){
		Runtime.getRuntime().gc();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -