Commit 8b9a480b by qiuchaofei

1.优化同步数据到neo4j的性能

parent 6acdf9e7
...@@ -12,6 +12,8 @@ import java.util.List; ...@@ -12,6 +12,8 @@ import java.util.List;
public interface Neo4jSystemRepository extends Neo4jRepository<Neo4jSystem, Long> { public interface Neo4jSystemRepository extends Neo4jRepository<Neo4jSystem, Long> {
List<Neo4jSystem> findNeo4jSystemByMetadataId(String metadataId); List<Neo4jSystem> findNeo4jSystemByMetadataId(String metadataId);
List<Neo4jSystem> findNeo4jSystemByName(String metadataName);
// @Query("MATCH p=(n:MetaData {metadataId:{parentId}})-[r:Composition]->(m) RETURN m limit {limit} ") // @Query("MATCH p=(n:MetaData {metadataId:{parentId}})-[r:Composition]->(m) RETURN m limit {limit} ")
@Query("match (n:Neo4jSystem{metadataId:{systemId}} )-[r:Composition]->(m) return m ") @Query("match (n:Neo4jSystem{metadataId:{systemId}} )-[r:Composition]->(m) return m ")
List<Neo4jSchema> getSchemaBySystemId(@Param("systemId") String systemId); List<Neo4jSchema> getSchemaBySystemId(@Param("systemId") String systemId);
......
package com.keymobile.metadata.metadataRelation.service; package com.keymobile.metadata.metadataRelation.service;
import com.keymobile.metadata.metadataRelation.controller.MetaDataController;
import com.keymobile.metadata.metadataRelation.pojo.mongo.MongoData; import com.keymobile.metadata.metadataRelation.pojo.mongo.MongoData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
...@@ -22,6 +25,7 @@ import java.util.concurrent.Executor; ...@@ -22,6 +25,7 @@ import java.util.concurrent.Executor;
@EnableAsync @EnableAsync
public class AsyncDataFromMongoToNeo4j { public class AsyncDataFromMongoToNeo4j {
private static final Logger logger = LoggerFactory.getLogger(AsyncDataFromMongoToNeo4j.class);
@Autowired @Autowired
private IMetadataService metadataService; private IMetadataService metadataService;
...@@ -33,7 +37,7 @@ public class AsyncDataFromMongoToNeo4j { ...@@ -33,7 +37,7 @@ public class AsyncDataFromMongoToNeo4j {
@Async @Async
public void asyncDataFromMongoToNeo4j(String catalogName) { public void asyncDataFromMongoToNeo4j(String catalogName) {
long start = System.currentTimeMillis();
String sql = "select scope_id, scope_name from auth_scope"; String sql = "select scope_id, scope_name from auth_scope";
List<MongoData> mongoDataList = jdbcTemplate.query(sql, new RowMapper<MongoData>() { List<MongoData> mongoDataList = jdbcTemplate.query(sql, new RowMapper<MongoData>() {
@Override @Override
...@@ -57,8 +61,10 @@ public class AsyncDataFromMongoToNeo4j { ...@@ -57,8 +61,10 @@ public class AsyncDataFromMongoToNeo4j {
// // 同步其他数据(模型,标准,质量等) // // 同步其他数据(模型,标准,质量等)
// //
// //同步作业内部的临时数据 // //同步作业内部的临时数据
// metadataService.deleteTempNodeByCatalogName(catalogName); metadataService.deleteTempNodeByCatalogName(catalogName);
// metadataService.createTempNode(catalogName); metadataService.createTempNode(catalogName);
long end = System.currentTimeMillis();
logger.info("同步数据完成,用时:"+(end-start));
} }
......
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