全量同步时,某业务无数据也需要发送一次{}请求。

全业务全量同步时,需要将service=-1标识发送至服务端,便于服务端清理所有分组复用业务配置
This commit is contained in:
duandongmei
2019-03-21 17:33:55 +06:00
parent fcface8471
commit fc302fe984

View File

@@ -155,15 +155,16 @@ public class ConfigSynchronizationService extends BaseService{
Page<BaseCfg> page=new Page<BaseCfg>(request,response,Constants.MAAT_JSON_SEND_SIZE,"a");
handleCallbackData(className,page,entity,request,response,false);
}
if(!isFinished && lastServiceTag){//如果业务没有配置数据,并且为最后一个业务,需要发送给服务接口一个结束标识
//如果业务没有配置数据,并且为最后一个业务,需要发送给服务接口一个结束标识
if(!isFinished && lastServiceTag){
String json = "{}";
/*if("1".equals(serviceType)){
json="{}";
}else{
json="[]";
}*/
//如果是所有业务全量同步需要发送一个service=-1的请求有助于服务端删除分组复用配置
if(StringUtil.isEmpty(serviceIdCondition)){
entity.setServiceId(-1);
}
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(finish data).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,Integer.parseInt(serviceType),entity.getServiceId(),entity.getTableName(),"FINISHED");
logger.info("全量下发响应信息:"+result.toString());
logger.info("全量下发响应信息【finish】"+result.toString());
}
}
long end = System.currentTimeMillis();
@@ -191,6 +192,7 @@ public class ConfigSynchronizationService extends BaseService{
boolean isUpdateCfg,String tableName) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
boolean hasData = true;
int index=0;
while(hasData){
entity.setPage(page);
List list = Lists.newArrayList();
@@ -239,6 +241,14 @@ public class ConfigSynchronizationService extends BaseService{
hasData = false;
}
//此业务无数据需同步,也许向服务端发送一个{}串
if(index ==0 && StringUtil.isEmpty(list) && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(m nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
index++;
}
}
/**
@@ -1021,6 +1031,7 @@ public class ConfigSynchronizationService extends BaseService{
boolean isUpdateCfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
boolean hasData = true;
int index=0;
while(hasData){
entity.setPage(page);
List<DdosIpCfg> list = configSynchronizationDao.getDdosIpCfgList(entity);
@@ -1033,6 +1044,14 @@ public class ConfigSynchronizationService extends BaseService{
}else{
hasData = false;
}
//此业务无数据需同步,也许向服务端发送一个{}串
if(index ==0 && StringUtil.isEmpty(list) && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(d nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
index++;
}
}
/**
@@ -1068,9 +1087,18 @@ public class ConfigSynchronizationService extends BaseService{
asnGroupInfos=asnGroupInfoDao.findAsnGroupInfoList(groupInfo);//每一批次下发都取一次最新的group_info信息
if(StringUtil.isEmpty(asnGroupInfos)){
hasData=false;
}
}
//此业务无数据需同步,也许向服务端发送一个{}串
if(!hasData && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(s asn or app nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
int index=0;
List listData = Lists.newArrayList();
while(hasData){
entity.setPage(page);
List list = Lists.newArrayList();
@@ -1083,6 +1111,7 @@ public class ConfigSynchronizationService extends BaseService{
entity.setCompileId(groupInfos.get(0).getCompileId());
entity.setGroupId(groupInfos.get(0).getGroupId());
list = configSynchronizationDao.getAppIpFeatureList(entity);
listData.addAll(list);
}else if(entity.getServiceId().equals(400)){
page.setPageSize(-1);
page.setPageNo(1);
@@ -1091,6 +1120,7 @@ public class ConfigSynchronizationService extends BaseService{
entity.setCompileId(asnGroupInfos.get(0).getCompileId());
entity.setGroupId(asnGroupInfos.get(0).getGroupId());
list = configSynchronizationDao.getAsnIpList(entity);
listData.addAll(list);
}else{
list = configSynchronizationDao.getIpPortListByService(entity);
}
@@ -1127,10 +1157,16 @@ public class ConfigSynchronizationService extends BaseService{
hasData=true;
}else {
hasData=false;
if(StringUtil.isEmpty(listData) && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(asn nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
}
}
//APP IP
if(entity.getServiceId().equals(1028)){
//TODO 待处理
}else if(entity.getServiceId().equals(1028)){
//APP IP
//处理完成一个compile删除一个Group
if(!StringUtil.isEmpty(groupInfos)){
groupInfos.remove(0);
@@ -1139,8 +1175,24 @@ public class ConfigSynchronizationService extends BaseService{
hasData=true;
}else {
hasData=false;
if(StringUtil.isEmpty(listData) && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(app nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
}
}else{
//此业务无数据需同步,也许向服务端发送一个{}串
if(index ==0 && StringUtil.isEmpty(list) && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(s nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
}
index++;
}
}
/**
@@ -1827,12 +1879,21 @@ public class ConfigSynchronizationService extends BaseService{
boolean isUpdateCfg) throws ClassNotFoundException{
boolean hasData = true;
int index=0;
while(hasData){
entity.setPage(page);
hasData=auditCallbackData(className,page,entity,hasData,isUpdateCfg);
if(hasData){
page.setPageNo(page.getNext());
}
//此业务无数据需同步,也许向服务端发送一个{}串
if(index ==0 && StringUtil.isEmpty(page.getList()) && !isUpdateCfg){
String json = "{}";
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+System.currentTimeMillis()+"(h nodata).json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,2,entity.getServiceId(),entity.getTableName(),null);
logger.info("全量下发响应信息:"+result.toString());
}
index++;
}
}
@@ -1959,7 +2020,7 @@ public class ConfigSynchronizationService extends BaseService{
}else {
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
//调用服务接口同步回调类配置
isFinished = ((!hasData)&&lastServiceTag)?true:false;
isFinished = ((!hasData)&&lastServiceTag)?true:false;
JSONObject result = ConfigServiceUtil.configSync(json,2,entity.getServiceId(),entity.getTableName(),isFinished?"FINISHED":null);
logger.info("全量下发响应信息:"+result.toString());
}