配置转换改为多线程转换,一个组类型一个线程;审核与更新组配置是查询配置下的所有域的查询改为多线程查询。在多个组的情况下处理速度会加快。

This commit is contained in:
wangxin
2019-07-19 12:59:25 +08:00
parent 12a77173ca
commit 8c514c4e7e
11 changed files with 842 additions and 372 deletions

View File

@@ -2430,55 +2430,100 @@ public class ConfigSynchronizationService extends BaseService{
List<Map<String,Object>> cfgList=(List<Map<String,Object>>)cfgMap.get(cfg.getServiceId());
Map<String,Object> maatTableMap=ConfigConvertUtil.convertCommonGroupMaatTable(cfg,cfgList);
Set<Integer> groupIdSet=new HashSet<>();
//多线程转换配置
ObjGroupCfgConvert ipConvert=new ObjGroupCfgConvert("ipGroup",cfg,1,serviceDictMap,maatTableMap,groupIdSet);
ipConvert.setGroupRelationList(groupRelationList);
ipConvert.setIpRegionList(ipRegionList);
ipConvert.setNumRegionList(numRegionList);
ipConvert.setStrRegionList(strRegionList);
ipConvert.setIsValid(entity.getIsValid());
ipConvert.setAuditTime(entity.getAuditTime());
ObjGroupCfgConvert subscribeIdConvert=new ObjGroupCfgConvert("subscribeIdGroup",cfg,1,serviceDictMap,maatTableMap,groupIdSet);
subscribeIdConvert.setGroupRelationList(groupRelationList);
subscribeIdConvert.setIpRegionList(ipRegionList);
subscribeIdConvert.setNumRegionList(numRegionList);
subscribeIdConvert.setStrRegionList(strRegionList);
subscribeIdConvert.setIsValid(entity.getIsValid());
subscribeIdConvert.setAuditTime(entity.getAuditTime());
ObjGroupCfgConvert urlConvert=new ObjGroupCfgConvert("urlGroup",cfg,1,serviceDictMap,maatTableMap,groupIdSet);
urlConvert.setGroupRelationList(groupRelationList);
urlConvert.setIpRegionList(ipRegionList);
urlConvert.setNumRegionList(numRegionList);
urlConvert.setStrRegionList(strRegionList);
urlConvert.setIsValid(entity.getIsValid());
urlConvert.setAuditTime(entity.getAuditTime());
ObjGroupCfgConvert domainConvert=new ObjGroupCfgConvert("domainGroup",cfg,1,serviceDictMap,maatTableMap,groupIdSet);
domainConvert.setGroupRelationList(groupRelationList);
domainConvert.setIpRegionList(ipRegionList);
domainConvert.setNumRegionList(numRegionList);
domainConvert.setStrRegionList(strRegionList);
domainConvert.setIsValid(entity.getIsValid());
domainConvert.setAuditTime(entity.getAuditTime());
Thread t1=new Thread(ipConvert);
Thread t2=new Thread(subscribeIdConvert);
Thread t3=new Thread(urlConvert);
Thread t4=new Thread(domainConvert);
t1.start();
t2.start();
t3.start();
t4.start();
try {
t1.join();
t2.join();
t3.join();
t4.join();
} catch (InterruptedException e) {
logger.error("多线程join异常",e);
}
//IP公共分组
if(CollectionUtils.isNotEmpty(cfg.getIpCommGroupCfgList())){
IpPortCfg _cfg = new IpPortCfg();
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
_cfg.setIsValid(entity.getIsValid());
_cfg.setIsAudit(entity.getIsAudit());
_cfg.setAuditTime(entity.getAuditTime());
Map<String,List> map = ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,ipRegionList,cfg.getIpCommGroupCfgList(),1,_cfg,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
ipRegionList=map.get("dstList");
if(map.get("numRegionList")!=null){
numRegionList.addAll(map.get("numRegionList"));
}
}
// if(CollectionUtils.isNotEmpty(cfg.getIpCommGroupCfgList())){
// IpPortCfg _cfg = new IpPortCfg();
// BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
// _cfg.setIsValid(entity.getIsValid());
// _cfg.setIsAudit(entity.getIsAudit());
// _cfg.setAuditTime(entity.getAuditTime());
// Map<String,List> map = ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,ipRegionList,cfg.getIpCommGroupCfgList(),1,_cfg,groupRelationList,maatTableMap,groupIdSet);
// groupRelationList=map.get("groupList");
// ipRegionList=map.get("dstList");
// if(map.get("numRegionList")!=null){
// numRegionList.addAll(map.get("numRegionList"));
// }
//
// }
//URL公共分组
if(CollectionUtils.isNotEmpty(cfg.getUrlCommGroupList())){
CommonStringCfg _cfg = new CommonStringCfg();
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
_cfg.setIsValid(entity.getIsValid());
_cfg.setIsAudit(entity.getIsAudit());
_cfg.setAuditTime(entity.getAuditTime());
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfg.getUrlCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
// if(CollectionUtils.isNotEmpty(cfg.getUrlCommGroupList())){
// CommonStringCfg _cfg = new CommonStringCfg();
// BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
// _cfg.setIsValid(entity.getIsValid());
// _cfg.setIsAudit(entity.getIsAudit());
// _cfg.setAuditTime(entity.getAuditTime());
// Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfg.getUrlCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
// groupRelationList=map.get("groupList");
// strRegionList=map.get("dstList");
// }
//账号公共分组
if(CollectionUtils.isNotEmpty(cfg.getScriberIdCommGroupList())){
CommonStringCfg _cfg = new CommonStringCfg();
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
_cfg.setIsValid(entity.getIsValid());
_cfg.setIsAudit(entity.getIsAudit());
_cfg.setAuditTime(entity.getAuditTime());
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfg.getScriberIdCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
// if(CollectionUtils.isNotEmpty(cfg.getScriberIdCommGroupList())){
// CommonStringCfg _cfg = new CommonStringCfg();
// BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
// _cfg.setIsValid(entity.getIsValid());
// _cfg.setIsAudit(entity.getIsAudit());
// _cfg.setAuditTime(entity.getAuditTime());
// Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfg.getScriberIdCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
// groupRelationList=map.get("groupList");
// strRegionList=map.get("dstList");
//
// }
//域名公共分组
if(CollectionUtils.isNotEmpty(cfg.getDomainCommGroupList())){
CommonStringCfg _cfg = new CommonStringCfg();
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId",});
_cfg.setIsValid(entity.getIsValid());
_cfg.setIsAudit(entity.getIsAudit());
_cfg.setAuditTime(entity.getAuditTime());
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfg.getDomainCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
// if(CollectionUtils.isNotEmpty(cfg.getDomainCommGroupList())){
// CommonStringCfg _cfg = new CommonStringCfg();
// BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId",});
// _cfg.setIsValid(entity.getIsValid());
// _cfg.setIsAudit(entity.getIsAudit());
// _cfg.setAuditTime(entity.getAuditTime());
// Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfg.getDomainCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
// groupRelationList=map.get("groupList");
// strRegionList=map.get("dstList");
// }
BeanUtils.copyProperties(cfg, maatCfg);
if(cfg.getServiceId().equals(512)){
maatCfg.setAction(2);
@@ -2514,6 +2559,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口下发配置数据
if(isUpdateCfg) {
//logger.info("配置批量下发:"+json);
// FileUtils.writeToFile("D:\\send.json",json,false);
//调用服务接口同步回调类配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
if(result!=null){