From 76ca72b50b5f99ecf25f75cc0d2add5451a5ffa3 Mon Sep 17 00:00:00 2001 From: wangxin Date: Fri, 23 Nov 2018 14:19:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9asn=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=B9=E6=B3=95=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=98=AF=E5=90=A6=E5=BC=BA=E5=88=B6=E5=88=B7?= =?UTF-8?q?=E6=96=B0=EF=BC=8C=E9=83=A8=E7=BD=B2=E5=A4=9A=E4=B8=AAtomcat?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=97=B6=E4=B8=AA=E4=B8=AAtomcat=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=8F=AF=E8=83=BD=E5=AD=98=E5=9C=A8=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=8C=E8=BF=99=E5=B0=B1?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E5=BC=BA=E5=88=B6=E9=87=8D=E6=96=B0=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/nis/util/AsnCacheUtils.java | 56 +++++++++++++------ .../nis/web/controller/BaseController.java | 2 +- .../controller/basics/AsnIpController.java | 4 +- .../web/service/basics/AsnIpCfgService.java | 2 +- 4 files changed, 43 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/nis/util/AsnCacheUtils.java b/src/main/java/com/nis/util/AsnCacheUtils.java index 481074431..6d0a239ce 100644 --- a/src/main/java/com/nis/util/AsnCacheUtils.java +++ b/src/main/java/com/nis/util/AsnCacheUtils.java @@ -65,29 +65,17 @@ public class AsnCacheUtils{ return configGroupInfos; } /** + * * 初始化缓存 + * + * @param force是否强制刷新 */ //@PostConstruct - public synchronized static void init() { + public synchronized static void init(boolean force) { long start=System.currentTimeMillis(); logger.warn("AsnCacheUtils init start..."); Cache cache=getCache(ASN_NO_CACHE); - //查询总量 - Long count=configGroupInfoDao.getCountByType(4); - //缓存key - boolean loadDatabase=false; - if(cache.getKeys().size()==0) { - loadDatabase=true; - }else { - long c=0l; - for(Object key:cache.getKeys()) { - c+=getMap(key).size(); - } - if(c!=count) { - loadDatabase=true; - } - } - if(loadDatabase) { + if(force) { List list=configGroupInfoDao.findAllList(4); Map> groupMap=Maps.newHashMap(); for(ConfigGroupInfo configGroupInfo:list) { @@ -104,7 +92,41 @@ public class AsnCacheUtils{ Element element = new Element(e.getKey(), e.getValue()); cache.put(element); } + }else { + //查询总量 + Long count=configGroupInfoDao.getCountByType(4); + boolean loadDatabase=false; + if(cache.getKeys().size()==0) { + loadDatabase=true; + }else { + long c=0l; + for(Object key:cache.getKeys()) { + c+=getMap(key).size(); + } + if(c!=count) { + loadDatabase=true; + } + } + if(loadDatabase) { + List list=configGroupInfoDao.findAllList(4); + Map> groupMap=Maps.newHashMap(); + for(ConfigGroupInfo configGroupInfo:list) { + if(groupMap.containsKey(configGroupInfo.getAsnId()/cache_rage)) { + groupMap.get(configGroupInfo.getAsnId()/cache_rage) + .put(configGroupInfo.getAsnId(), configGroupInfo); + }else { + Map m=Maps.newHashMap(); + m.put(configGroupInfo.getAsnId(), configGroupInfo); + groupMap.put(configGroupInfo.getAsnId()/cache_rage, m); + } + } + for(Entry> e:groupMap.entrySet()) { + Element element = new Element(e.getKey(), e.getValue()); + cache.put(element); + } + } } + long end=System.currentTimeMillis(); logger.warn("AsnCacheUtils init finish,cost:"+(end-start)); } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 99d727908..255e3817b 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -1197,7 +1197,7 @@ public class BaseController { ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list); } else if (regionDict.getFunctionId().equals(600)) {// ASN IP //加载asn缓存 - AsnCacheUtils.init(); + AsnCacheUtils.init(true); BlockingQueue list = ei.getDataList(AsnIpTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, asnNoMaps, list); } else if (regionDict.getFunctionId().equals(301)) {// DDOS IP diff --git a/src/main/java/com/nis/web/controller/basics/AsnIpController.java b/src/main/java/com/nis/web/controller/basics/AsnIpController.java index bad7cdfdf..d4f2f833f 100644 --- a/src/main/java/com/nis/web/controller/basics/AsnIpController.java +++ b/src/main/java/com/nis/web/controller/basics/AsnIpController.java @@ -50,7 +50,7 @@ public class AsnIpController extends BaseController{ // List policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(4); // model.addAttribute("policyGroups", policyGroups); - AsnCacheUtils.init(); + AsnCacheUtils.init(false); List policyGroups=AsnCacheUtils.getAllAsnGroup(); model.addAttribute("policyGroups", policyGroups); return "/basics/asnIpCfgList"; @@ -137,7 +137,7 @@ public class AsnIpController extends BaseController{ @RequestMapping(value="ajaxGroupName",method=RequestMethod.POST) @ResponseBody public Map ajaxGroupName(Model model,String ids){ - AsnCacheUtils.init(); + AsnCacheUtils.init(false); Map groupMap=new HashMap<>(); for(String id:ids.split(",")) { ConfigGroupInfo info=AsnCacheUtils.get(Long.parseLong(id)); diff --git a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java index 236d29e73..ce1f7a0f0 100644 --- a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java +++ b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java @@ -168,7 +168,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { configGroupInfoS.clear(); } //刷新缓存 - AsnCacheUtils.init(); + AsnCacheUtils.init(true); long end=System.currentTimeMillis(); logger.warn("Save group finish,cost:"+(end-start)); }