1、增加主函数入口;2、增加日志打印

This commit is contained in:
chenyawei 2025-01-17 17:31:36 +08:00
parent 93670ee60d
commit e84265cff3
2 changed files with 30 additions and 1 deletions

View File

@ -0,0 +1,17 @@
package com.idata.tools.relationcompletion;
import com.idata.tools.relationcompletion.completion.RelationCompletion;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class RelationCompletionApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(RelationCompletionApplication.class, args);
RelationCompletion relationCompletion = context.getBean(RelationCompletion.class);
relationCompletion.relationCompletion();
}
}

View File

@ -25,6 +25,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Stream;
/**
@ -76,20 +77,28 @@ public class RelationCompletion {
SessionPool sessionPool = graphCommonService.newPoolConfig();
for (TagEnum tagEnum : TagEnum.values()) {
String tag = tagEnum.getTag();
log.info("开启{}类型的点为起始节点反向关系补全", tag);
List<NebulaMultiMatchJsonResult> idJsonResults =
graphCommonService.executeJson(NebulaUtil.getTagIds(spaceName, tag), NebulaMultiMatchJsonResult.class);
List<String> idLists = NebulaMultiMatchJsonResult.getIdLists(idJsonResults.get(0));
map.put(tag, idLists);
// 遍历边
EdgeEnum[] edgeEnums = EdgeEnum.values();
AtomicLong atomicLong = new AtomicLong(0);
Stream.of(edgeEnums)
.forEach(edgeEnum -> {
log.info("开启{}类型的点, 为起始节点; {}类型的边的反向关系补全, ", tag, edgeEnum.getEdgeType(),
"反向关系为: {}", edgeEnum.getReverseRelation());
CompletableFuture<Void> reverseFuture = CompletableFuture.runAsync(() -> {
String srcTag = edgeEnum.getSrcTag();
String dstTag = edgeEnum.getDstTag();
String edgeType = edgeEnum.getEdgeType();
String reverseRelation = edgeEnum.getReverseRelation();
for (String id : idLists) {
atomicLong.incrementAndGet();
if (atomicLong.get() / 1000 == 0) {
log.info("进行{}类型的点, 为起始节点; {}类型的边的反向关系补全, ", tag, edgeEnum.getEdgeType(),
"反向关系为: {}", edgeEnum.getReverseRelation(), "进度: {}", atomicLong.get(), "/", idLists.size());
}
List<NebulaVertexJsonResult> vertexJsonResults = graphCommonService.executeJsonWithoutLogs(
NebulaUtil.getDstVerticesById(spaceName, srcTag, id, edgeType),
NebulaVertexJsonResult.class,
@ -101,8 +110,11 @@ public class RelationCompletion {
}
}, threadPoolExecutor);
reverseFuture.join();
atomicLong.set(0);
});
}
sessionPool.release();
threadPoolExecutor.shutdown();
}
/**