Commit 7e75ccec by qiuchaofei

1,异步迁移元数据mongo--》neo4j

parent 1a8c3783
......@@ -16,6 +16,7 @@ import com.keymobile.metadata.metadataRelation.pojo.returnBean.Edge;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.MetaModel;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.Node;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnReslult;
import com.keymobile.metadata.metadataRelation.service.AsyncDataFromMongoToNeo4j;
import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService;
import com.keymobile.metadata.metadataRelation.service.IMetadataService;
import com.keymobile.metadata.metadataRelation.service.impl.MongoDbServiceImpl;
......@@ -44,6 +45,8 @@ public class MetaDataController {
private IMetadataService metadataService;
@Autowired
private AsyncDataFromMongoToNeo4j asyncDataFromMongoToNeo4j;
@Autowired
private MongoDbServiceImpl mongoDbService;
@Autowired
......@@ -486,17 +489,17 @@ public class MetaDataController {
/**
* 同步元数据关系的接口,传入一个环境名称(catalognName),从mongo读取关系,存入到neo4j中
*
* 异步处理,
* @return
*/
@ApiOperation(tags = "", value = "同步元数据关系的接口")
@RequestMapping(path = "/syschroRelationFromMongo", method = RequestMethod.GET)
public String syschroRelationFromMongo(String catalogName) {
logger.info("开始同步元数据:从mongo到neo4j");
public String synchroRelationFromMongo(String catalogName) {
logger.info("开始异步迁移元数据:从mongo到neo4j");
String flag = "success";
metadataService.syschroRelationFromMongo(catalogName);
metadataService.deleteTempNodeByCatalogName(catalogName);
metadataService.createTempNode(catalogName);
asyncDataFromMongoToNeo4j.asyncDataFromMongoToNeo4j(catalogName);
logger.info("返回结果,后台继续运行。");
return flag;
}
......
package com.keymobile.metadata.metadataRelation.service;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import java.lang.reflect.Method;
import java.util.concurrent.Executor;
@Service
@EnableAsync
public class AsyncDataFromMongoToNeo4j {
@Autowired
private IMetadataService metadataService;
@Async
public void asyncDataFromMongoToNeo4j(String catalogName) {
metadataService.syschroRelationFromMongo(catalogName);
metadataService.deleteTempNodeByCatalogName(catalogName);
metadataService.createTempNode(catalogName);
}
}
......@@ -458,8 +458,7 @@ public class MetadataServiceImpl implements IMetadataService {
long starttime = System.currentTimeMillis();
StatementResult result = session.run(cypher);
long endtime = System.currentTimeMillis();
logger.info("查询:"+cypher+", 耗时:"+(endtime-starttime));
int count = 0;
while(result.hasNext()){
......@@ -482,6 +481,9 @@ public class MetadataServiceImpl implements IMetadataService {
}
}
}
long endtime = System.currentTimeMillis();
logger.info("模糊查找结束,返回数量:" + metadataId2Name.size()+",耗时:"+(endtime-starttime));
return metadataId2Name;
}
......
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