(1)导入验证修正bug,多线程引入service调用时发生异常,将service调用dns响应策略,dns组改为从缓存中获取
(2)DNS IP导入改为批量导入
This commit is contained in:
@@ -869,7 +869,6 @@ public class BaseController {
|
||||
List<Future<String>> futures=new ArrayList<>();
|
||||
for(int i=0;i<Constants.MULITY_THREAD_SIZE;i++) {
|
||||
CheckIpFormatThread t=new CheckIpFormatThread(serviceDict,regionDict, this.getMsgProp(), list, queue);
|
||||
t.setDnsResStrategyService(dnsResStrategyService);
|
||||
t.setAsnNoMaps(asnNos);
|
||||
futures.add(service.submit(t));
|
||||
}
|
||||
@@ -910,7 +909,6 @@ public class BaseController {
|
||||
List<Future<String>> futures=new ArrayList<>();
|
||||
for(int i=0;i<Constants.MULITY_THREAD_SIZE;i++) {
|
||||
CheckStringFormatThread t=new CheckStringFormatThread(serviceDict,regionDict, this.getMsgProp(), list, queue);
|
||||
t.setDnsResStrategyService(dnsResStrategyService);
|
||||
futures.add(service.submit(t));
|
||||
}
|
||||
service.shutdown();
|
||||
@@ -950,7 +948,6 @@ public class BaseController {
|
||||
List<Future<String>> futures=new ArrayList<>();
|
||||
for(int i=0;i<Constants.MULITY_THREAD_SIZE;i++) {
|
||||
CheckComplexStringFormatThread t=new CheckComplexStringFormatThread(serviceDict,regionDict, this.getMsgProp(), list, queue);
|
||||
t.setDnsResStrategyService(dnsResStrategyService);
|
||||
futures.add(service.submit(t));
|
||||
}
|
||||
service.shutdown();
|
||||
@@ -990,8 +987,6 @@ public class BaseController {
|
||||
List<Future<String>> futures=new ArrayList<>();
|
||||
for(int i=0;i<Constants.MULITY_THREAD_SIZE;i++) {
|
||||
CheckDnsResStrategyFormatThread t=new CheckDnsResStrategyFormatThread(serviceDict,regionDict, this.getMsgProp(), list, queue);
|
||||
t.setDnsResStrategyService(dnsResStrategyService);
|
||||
t.setPolicyGroupInfoService(policyGroupInfoService);
|
||||
futures.add(service.submit(t));
|
||||
}
|
||||
service.shutdown();
|
||||
|
||||
@@ -5,11 +5,15 @@ import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.beust.jcommander.internal.Lists;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.callback.InlineIp;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
@@ -20,6 +24,7 @@ import com.nis.util.ConfigServiceUtil;
|
||||
import com.nis.web.dao.configuration.DnsIpCfgDao;
|
||||
import com.nis.web.security.UserUtils;
|
||||
import com.nis.web.service.BaseService;
|
||||
import com.nis.web.service.SpringContextHolder;
|
||||
|
||||
|
||||
|
||||
@@ -45,11 +50,28 @@ public class DnsIpCfgService extends BaseService{
|
||||
public DnsIpCfg getDnsIpCfg(Long cfgId) {
|
||||
return dnsIpCfgDao.getDnsIpCfg(cfgId);
|
||||
}
|
||||
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
||||
public void saveDnsIpCfg(List<BaseIpCfg> cfgs) {
|
||||
List<DnsIpCfg> dnsIpCfgs=Lists.newArrayList(cfgs.size());
|
||||
for(BaseIpCfg cfg:cfgs) {
|
||||
DnsIpCfg _cfg=new DnsIpCfg();
|
||||
BeanUtils.copyProperties(cfg, _cfg);
|
||||
saveOrUpdate(_cfg);
|
||||
dnsIpCfgs.add(_cfg);
|
||||
}
|
||||
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
|
||||
SqlSession batchSqlSession = null;
|
||||
try{
|
||||
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
||||
for(int index = 0; index < dnsIpCfgs.size();index++){
|
||||
DnsIpCfg dnsIpCfg = dnsIpCfgs.get(index);
|
||||
//如果insert加入了select last_insert_id,会拖慢6~7倍以上的效率
|
||||
((DnsIpCfgDao) batchSqlSession.getMapper(DnsIpCfgDao.class)).insert(dnsIpCfg);
|
||||
}
|
||||
batchSqlSession.commit();
|
||||
}finally {
|
||||
if(batchSqlSession != null){
|
||||
batchSqlSession.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
||||
|
||||
Reference in New Issue
Block a user