ASN导入全量,删除asnip逻辑修改为基于asn no的批量删除。
每次删除定量的asn ip cfg遍历,基于本批asn no,asn ip数量大于maat_send_size即删除并入库最新asn ip信息
This commit is contained in:
@@ -20,6 +20,7 @@ import com.nis.domain.FunctionRegionDict;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.SysDataDictionaryItem;
|
||||
import com.nis.domain.basics.AsnGroupInfo;
|
||||
import com.nis.domain.basics.AsnIpCfg;
|
||||
import com.nis.domain.basics.PolicyGroupInfo;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.configuration.DnsResStrategy;
|
||||
@@ -43,7 +44,8 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
//【1】 旧的asn group info
|
||||
//【2】 所有的asn group info
|
||||
//【3】 所有已审核通过的asn group info
|
||||
private List<Map<Long,AsnGroupInfo>> asnNoMaps;
|
||||
private List<Map<Long,AsnGroupInfo>> asnNoMaps;
|
||||
private Map<String,List<IpPortCfg>> asnIpMap;
|
||||
//组织之间的关系
|
||||
//【0】 新的组织信息
|
||||
//【1】 旧的组织信息
|
||||
@@ -66,7 +68,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
int size=srcQueue.drainTo(dataList,Constants.MAAT_JSON_SEND_SIZE);
|
||||
if(regionDict.getRegionType().intValue()==1) {
|
||||
try {
|
||||
List<BaseIpCfg> ipcfgs=this.checkIpCfg(msg,asnNoMaps, dataList);
|
||||
List<BaseIpCfg> ipcfgs=this.checkIpCfg(msg,asnNoMaps,asnIpMap, dataList);
|
||||
boolean success=destQueue.addAll(ipcfgs);
|
||||
}catch (Exception e) {
|
||||
logger.error("checkIpCfg error,",e);
|
||||
@@ -85,7 +87,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
|
||||
return msg.toString();
|
||||
}
|
||||
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,AsnGroupInfo>> asnNos, List<Object> list)
|
||||
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,AsnGroupInfo>> asnNos,Map<String, List<IpPortCfg>> asnIpCfgs, List<Object> list)
|
||||
throws ServiceException {
|
||||
logger.warn("start to validate ip...");
|
||||
long start=System.currentTimeMillis();
|
||||
@@ -367,8 +369,6 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
asnNos.get(3).put(asnNo,asnGroupInfo);
|
||||
}
|
||||
asnNos.get(1).put(asnNo,asnGroupInfo);
|
||||
asnGroupInfo.setIsValid(0);
|
||||
asnGroupInfo.setIssuedIPs(0l);
|
||||
asnGroupInfo.setOrganization(organization);
|
||||
asnGroupInfo.setCountry(baseIpCfg.getCountry());
|
||||
asnGroupInfo.setDetail(baseIpCfg.getDetail());
|
||||
@@ -955,6 +955,16 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
errTip.append(errInfo);
|
||||
errTip.append("<br>");
|
||||
}else {
|
||||
synchronized (Constants.IMPORT_ASN_LOCK) {
|
||||
//asn根据asn号分组存储asn ip信息
|
||||
if(StringUtil.isEmpty(asnIpCfgs.get(baseIpCfg.getUserRegion1()))){
|
||||
List<IpPortCfg> asnIpList=new ArrayList<>();
|
||||
asnIpList.add(baseIpCfg);
|
||||
asnIpCfgs.put(baseIpCfg.getUserRegion1(), asnIpList);
|
||||
}else{
|
||||
asnIpCfgs.get(baseIpCfg.getUserRegion1()).add(baseIpCfg);
|
||||
}
|
||||
}
|
||||
ipList.add(baseIpCfg);
|
||||
}
|
||||
}
|
||||
@@ -1408,5 +1418,10 @@ public class CheckIpFormatThread implements Callable<String>{
|
||||
public void setAsnOrgList(List<Map<String, ConfigGroupInfo>> asnOrgList) {
|
||||
this.asnOrgList = asnOrgList;
|
||||
}
|
||||
|
||||
public Map<String, List<IpPortCfg>> getAsnIpMap() {
|
||||
return asnIpMap;
|
||||
}
|
||||
public void setAsnIpMap(Map<String, List<IpPortCfg>> asnIpMap) {
|
||||
this.asnIpMap = asnIpMap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user