Commit ef3ef25c by qiuchaofei

1.同步schema标签是,分批获取。2.修改调用标签服务的接口。

parent b9028b0b
...@@ -12,9 +12,13 @@ import java.util.Map; ...@@ -12,9 +12,13 @@ import java.util.Map;
public interface TagRemoteService { public interface TagRemoteService {
@RequestMapping(value = "/tagResource/getResourceTagIn", method = RequestMethod.POST) @RequestMapping(value = "/tagResource/getResourceTagIn", method = RequestMethod.POST)
Map<String,List<Map<String,Object>>> getTagByMetadataId(@RequestParam("resourceIds") List<String> resourceIds, Map<String,List<Map<String,Object>>> getTagByMetadataId(
@RequestParam("type") String type, @RequestParam("resourceIds") List<String> resourceIds,
@RequestParam("creator") String creator, @RequestParam("type") String type,
@RequestParam("includeAll") boolean includeAll); @RequestParam(required = false) String classifyName,
@RequestParam("creator") String creator,
@RequestParam("includeAll") boolean includeAll,
@RequestParam(required = false, defaultValue = "true") boolean includePrivate
);
} }
...@@ -119,7 +119,8 @@ public class SchemaServiceImpl implements ISchemaService { ...@@ -119,7 +119,8 @@ public class SchemaServiceImpl implements ISchemaService {
List<String> metadataIds = new ArrayList<>(); List<String> metadataIds = new ArrayList<>();
metadataIds.add(schemaId); metadataIds.add(schemaId);
try{ try{
Map<String,List<Map<String,Object>>> returnResults = tagRemoteService.getTagByMetadataId(metadataIds, "metadata", "", true); Map<String,List<Map<String,Object>>> returnResults =
tagRemoteService.getTagByMetadataId(metadataIds, "metadata", "level","", true,false);
for(Object obj : returnResults.keySet()){ for(Object obj : returnResults.keySet()){
System.out.println(obj+" : "+returnResults.get(obj)); System.out.println(obj+" : "+returnResults.get(obj));
List<Map<String,Object>> mapList = returnResults.get(obj); List<Map<String,Object>> mapList = returnResults.get(obj);
...@@ -162,31 +163,63 @@ public class SchemaServiceImpl implements ISchemaService { ...@@ -162,31 +163,63 @@ public class SchemaServiceImpl implements ISchemaService {
schemaIdList.add(neo4jSchema.getMetadataId()); schemaIdList.add(neo4jSchema.getMetadataId());
neo4jSchemaMap.put(neo4jSchema.getMetadataId(),neo4jSchema); neo4jSchemaMap.put(neo4jSchema.getMetadataId(),neo4jSchema);
} }
logger.info("开始调用标签接口...");
Map<String,List<Map<String,Object>>> returnResults = tagRemoteService.getTagByMetadataId(schemaIdList, "metadata", "", true); logger.info("开始调用标签接口,schema总数量:"+schemaIdList.size());
logger.info("调用标签接口完成。。。schema数量:"+schemaIdList.size()); int count = 99;//每次调用标签接口
int count =0; int size = 0;
for(Object obj : returnResults.keySet()){ int num = 1;
String schemaId = (String)obj; List<String> schemaIds = new ArrayList<>();
List<Map<String,Object>> mapList = returnResults.get(obj);
for(Map<String,Object> map : mapList){ for(String schemaId0:schemaIdList){
String label =(String) map.get("name"); size++;
if(layer.contains(label)){ schemaIds.add(schemaId0);
count++; if(size % count ==0){
logger.info("开始第"+num+"次调用标签,schema数量:"+schemaIds.size());
Neo4jSchema neo4jSchema = neo4jSchemaMap.get(schemaId); Map<String,List<Map<String,Object>>> returnResults =
neo4jSchema.setLabel(label); tagRemoteService.getTagByMetadataId(schemaIds, "metadata","level", "", true,false);
neo4jSchemaRepository.save(neo4jSchema); logger.info("第"+num+"次调用标签接口完成。");
if(count %50==0){ num++;
logger.info(count+" schema:"+neo4jSchema.getName() +" 的标签是:"+label); for(Object obj : returnResults.keySet()){
String schemaId = (String)obj;
List<Map<String,Object>> mapList = returnResults.get(obj);
for(Map<String,Object> map : mapList){
String label =(String) map.get("name");
if(layer.contains(label)){
Neo4jSchema neo4jSchema = neo4jSchemaMap.get(schemaId);
neo4jSchema.setLabel(label);
neo4jSchemaRepository.save(neo4jSchema);
break;
}
}
}
schemaIds.clear();
}
}
if(schemaIds !=null && schemaIds.size()!=0){
logger.info("开始第"+num+"次调用标签,schema数量:"+schemaIds.size());
Map<String,List<Map<String,Object>>> returnResults =
tagRemoteService.getTagByMetadataId(schemaIds, "metadata","level", "", true,false);
logger.info("第"+num+"次调用标签接口完成。");
for(Object obj : returnResults.keySet()){
String schemaId = (String)obj;
List<Map<String,Object>> mapList = returnResults.get(obj);
for(Map<String,Object> map : mapList){
String label =(String) map.get("name");
if(layer.contains(label)){
Neo4jSchema neo4jSchema = neo4jSchemaMap.get(schemaId);
neo4jSchema.setLabel(label);
neo4jSchemaRepository.save(neo4jSchema);
break;
} }
break;
} }
} }
} }
long time2 = System.currentTimeMillis(); long time2 = System.currentTimeMillis();
logger.info("同步所有schema的标签完成。。。。用时:"+(time2-time1)); logger.info("同步所有schema的标签完成。数量是:"+schemaIdList.size()+" ,用时:"+(time2-time1));
return true; return true;
} }
...@@ -205,7 +238,8 @@ public class SchemaServiceImpl implements ISchemaService { ...@@ -205,7 +238,8 @@ public class SchemaServiceImpl implements ISchemaService {
String returnLabel = ""; String returnLabel = "";
try { try {
Map<String,List<Map<String,Object>>> returnResults = tagRemoteService.getTagByMetadataId(schemaIds, "metadata", "", true); Map<String,List<Map<String,Object>>> returnResults =
tagRemoteService.getTagByMetadataId(schemaIds, "metadata","level", "", true,false);
for(Object obj : returnResults.keySet()){ for(Object obj : returnResults.keySet()){
String schemaId = (String)obj; String schemaId = (String)obj;
System.out.println(obj+" : "+returnResults.get(obj)); System.out.println(obj+" : "+returnResults.get(obj));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment