📄 cache.java
字号:
package com.gctech.sms.voice.common;
import java.util.*;
import org.apache.log4j.Logger;
import com.gctech.sms.voice.dao.*;
import com.gctech.sms.voice.*;
/**
* 缓存一些数据,比如大小类别
* 以及top10,或者用户信息
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author lijz@gctech.com.cn
* @version 1.0
*/
public class Cache
{
private Timer timer = new Timer(true);
Map bMap = new HashMap(6);
Map sMap = new HashMap(100);
VoiceFacade f = new VoiceFacade();
VoiceValueObject[] jfdTop10 = null;
VoiceValueObject[] userTop10 = null;
private static Logger logger = Logger.getLogger(Cache.class);
private static Cache cache = new Cache();
public Cache()
{
init();
}
private void init()
{
loadCataLog();
this.reloadVoiceTopFromJFD();
this.reloadVoiceTopFromUser();
timer.schedule(new LoadTop10(this),0,1000*Config.instance().getReloadPeriod());
}
public static Cache instance()
{
return cache;
}
public void stopLoad()
{
timer.cancel();
}
private void loadCataLog()
{
try
{
List bList = f.allBigCatalog();
BigCatalogValueObject bvo = null;
for(int i=0;i<bList.size();i++)
{
bvo = (BigCatalogValueObject)bList.get(i);
bMap.put(bvo.getId(),new SimpleValue(bvo.getId().intValue(),bvo.getName()));
}
logger.info("load big catalog ok");
List sList = f.allSmallCatalog();
SmallCatalogValueObject svo = null;
for(int i=0;i<sList.size();i++)
{
svo = (SmallCatalogValueObject)sList.get(i);
sMap.put(svo.getId(),new TwoKeyValue(svo.getId().intValue(),svo.getBigId().intValue(),svo.getName()));
}
}
catch(VoiceException ve)
{
logger.fatal("装载类别失败",ve);
}
}
public SimpleValue[] allBigCatalog()
{
return (SimpleValue[])bMap.values().toArray(new SimpleValue[bMap.size()]);
}
/**
* 暂时不用,写在静态页面上
* @param bigId int
* @return SimpleValue[]
*/
public SimpleValue[] allSmallCatalog(int bigId)
{
throw new UnsupportedOperationException();
}
public SimpleValue getSmallCatalog(Integer id)
{
return (SimpleValue)sMap.get(id);
}
public int getBigCatalog(Integer smallId)
{
TwoKeyValue tv = (TwoKeyValue)this.getSmallCatalog(smallId);
return tv.getSid();
}
/**
* 得到top10
* @param type 1,吉芙得公司提供,2,用户自定义
* @return
*/
public VoiceValueObject[] voiceTop10(int type)
{
if(type==1) return jfdTop10;
else return userTop10;
}
private void reloadVoiceTopFromJFD()
{
try
{
this.jfdTop10 = f.getVoiceByBigCatalog(null,1,10);
}
catch(VoiceException ex)
{
logger.fatal("状态JFD Top10失败",ex);
}
}
private void reloadVoiceTopFromUser()
{
try
{
this.userTop10 = f.getVoiceByUser(1,10);
}
catch(VoiceException ex)
{
logger.fatal("状态User Top10失败",ex);
}
}
class LoadTop10 extends TimerTask
{
private Cache cache = null;
public LoadTop10(Cache cache)
{
this.cache = cache;
}
public void run()
{
cache.reloadVoiceTopFromJFD();
cache.reloadVoiceTopFromUser();
}
}
public static void main(String[] args) {
// SimpleValue vo = Cache.instance().getSmallCatalog(new Integer(1));
// Cache.instance().reloadVoiceTopFromJFD();
// System.out.println(Cache.instance().userTop10.length);
DBHelper.isDebug = true;
// System.out.println(Cache.instance().getSmallCatalog(new Integer(0)));
// VoiceValueObject[] vos = Cache.instance().userTop10;
// for(int i =0 ;i<vos.length;i++)
// {
// System.out.println(vos[i].getId()+":"+vos[i].getUserName());
// }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -