cassandra外部使用示例三

续二的类:
/**
* 从主页面点击产品定位到导航页面
*/
public List<Map<String, Object>> getThinkwordByDocFamily(Map map)
throws ApplicationException
{
String nlsLang = (String) map.get("nlsLang");
String itemName = (String) map.get("itemName");
String itemId = (String) map.get("itemId");
String aKeyArea = CACHE_FUNCTION + ".getThinkwordByDocFamilyIndex";
String aName = nlsLang + ":"+ itemId + itemName;
//通过 aKeyArea 和 aName 获取缓存中的对象
if (IS_USE_CACHE)
{
List cacheList = (List) getLivingCacheObject(aKeyArea, aName);
if (cacheList != null && cacheList.size() > 0)
{
return cacheList;
}
}
//从数据库取数据,再存入缓存;
List dataList = navigationDao.getThinkwordByDocFamily(map);
if (IS_USE_CACHE && dataList != null && dataList.size() > 0)
{
pushCacheObject(aKeyArea, aName, dataList);
}
return dataList;
}

/**通过ID获取HtmlArea静态脚本
*/
public Map<String, Object> getHtmlArea(String ID)
throws ApplicationException
{
String aKeyArea = CACHE_FUNCTION + ".getHtmlArea";
String aName = ID;

//通过 aKeyArea 和 aName 获取缓存中的对象
if (IS_USE_CACHE)
{
Map cacheMap = (Map) getLivingCacheObject(aKeyArea, aName);
if (cacheMap != null && cacheMap.size() > 0)
{
return cacheMap;
}
}
//从数据库取数据,再存入缓存;
Map dataMap = navigationDao.getHTMLArea(ID);
if (IS_USE_CACHE && dataMap != null && dataMap.size() > 0)
{
pushCacheObject(aKeyArea, aName, dataMap);
}
return dataMap;
}

/**获取缓存生命周期有效的缓存对象
*/
private Object getLivingCacheObject(String aKeyArea, String aName)
throws ApplicationException
{
Map cacheMap;
try
{
cacheMap = cache.getResultMap(aKeyArea, aName);
}
catch (Exception e)
{
e.printStackTrace();
throw new ApplicationException("cache getResultMap error", e);
}
if (cacheMap != null)
{
long pushTime = (Long) cacheMap.get("cache.timestamp");
long liveTime = System.currentTimeMillis() - pushTime;
Object cacheObject = cacheMap.get("cache.value");
if (liveTime < CACHE_LIFE_CYCLE)
{
sLog.info(" getLivingCacheObject : --aKeyArea=" + aKeyArea
+ "; --aName=" + aName + "; ");
return cacheObject;
}
}
return null;
}

/** 缓存一个可序列化的数据对象
*/
private void pushCacheObject(String aKeyArea, String aName, Object object)
throws ApplicationException
{
try
{
sLog.info(" pushCacheObject : --aKeyArea=" + aKeyArea
+ "; --aName=" + aName + "; ");
cache.put(aKeyArea, aName, (Serializable) object);
}
catch (Exception e)
{
e.printStackTrace();
throw new ApplicationException("cache put error", e);
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值