Commit c9804f81 by 303514581@qq.com

2019/1/7 backup 针对备用es调整读取策略

parent 953f2cdc
# messageflow-监测系统消息流模块
标签(空格分隔):readme
---
##介绍项目
监测系统消息流模块,主要功能:消息流、定向监测消息流、自动标注、事件采集
---
##项目文档地址
>参考监测系统文档
---
##项目运行的服务器及目录
> 项目地址:/home/zhiwei/jar/messageflow
服务器地址:
内网地址:192.168.0.2
外网地址:115.236.59.87
...@@ -61,7 +61,7 @@ public class ES4RedisRunner implements ApplicationRunner { ...@@ -61,7 +61,7 @@ public class ES4RedisRunner implements ApplicationRunner {
log.error("主定时器异常{}{}",e.getMessage(),e.getStackTrace()); log.error("主定时器异常{}{}",e.getMessage(),e.getStackTrace());
} }
} }
}, 60*1000L, 50 * 1000L); }, 100L, 50 * 1000L);
......
...@@ -2,7 +2,9 @@ package com.zhiwei.messageflow; ...@@ -2,7 +2,9 @@ package com.zhiwei.messageflow;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
...@@ -15,6 +17,7 @@ import com.zhiwei.messageflow.mongo.bean.PlatformNew; ...@@ -15,6 +17,7 @@ import com.zhiwei.messageflow.mongo.bean.PlatformNew;
import com.zhiwei.messageflow.mongo.bean.Project; import com.zhiwei.messageflow.mongo.bean.Project;
import com.zhiwei.messageflow.mongo.dao.PlatformDao; import com.zhiwei.messageflow.mongo.dao.PlatformDao;
import com.zhiwei.messageflow.mongo.dao.ProjectDao; import com.zhiwei.messageflow.mongo.dao.ProjectDao;
import com.zhiwei.messageflow.util.Tools;
@Component @Component
public class ES4RedisStart { public class ES4RedisStart {
...@@ -29,44 +32,72 @@ public class ES4RedisStart { ...@@ -29,44 +32,72 @@ public class ES4RedisStart {
@Autowired @Autowired
private ES4RedisTask es4RedisTask; private ES4RedisTask es4RedisTask;
@Autowired @Autowired
private ESGetCommonId esGetCommonId; private ESGetCommonId esGetCommonId;
private Map<String, Boolean> PROJECTMAP = new HashMap<>();
private static final int PROJECTCOUNT = 9;
/** /**
* 启动线程 * 启动线程
*/ */
public void startThread() throws JsonParseException, JsonMappingException, IOException, InterruptedException { public void startThread() throws JsonParseException, JsonMappingException, IOException, InterruptedException {
//更新commonid // 更新commonid
esGetCommonId.getCommonId(); esGetCommonId.getCommonId();
// 项目列表 // 项目列表
List<Project> projects = projectDao.getAllProjects(); List<Project> projects = projectDao.getAllProjects();
// 本轮项目计数
int pcount = 0;
//new Map
if (Tools.isEmpty(PROJECTMAP.keySet())||isProjectMapFull()) {
projects.forEach(p -> {
PROJECTMAP.put(p.getProjectName(), false);
});
PROJECTMAP.keySet().forEach(p -> {
System.out.println(p+"\t"+PROJECTMAP.get(p));
});
}else {
PROJECTMAP.keySet().forEach(p -> {
System.out.println(p+"\t"+PROJECTMAP.get(p));
});
}
// 公共平台名列表 // 公共平台名列表
// List<String> platformNames = platformDao.getPublicPlatformName(); // List<String> platformNames = platformDao.getPublicPlatformName();
// 遍历项目 // 遍历项目
for (Project project : projects) { for (Project project : projects) {
// if(!project.getProjectName().equals("测试")) { // if(!project.getProjectName().equals("测试")) {
// continue; // continue;
// } // }
if (pcount >= PROJECTCOUNT) {
continue;
}
if (!canProjectRead(project)) {
continue;
} else {
pcount++;
}
/** /**
* 项目全部平台(公共+私有) * 项目全部平台(公共+私有)
*/ */
List<PlatformNew> allplatformNames = platformDao.findPlatformByProject(project); List<PlatformNew> allplatformNames = platformDao.findPlatformByProject(project);
// System.out.println(allplatformNames); // System.out.println(allplatformNames);
// List<String> allplatformNames = new ArrayList<>(); // List<String> allplatformNames = new ArrayList<>();
// allplatformNames.addAll(platformNames); // allplatformNames.addAll(platformNames);
// allplatformNames.addAll(project.getDataPt()); // allplatformNames.addAll(project.getDataPt());
// 获取线程 // 获取线程
ES4RedisThreadNew es4RedisThread = ES4RedisThreadNew.getThread(project.getProjectName(), project, ES4RedisThreadNew es4RedisThread = ES4RedisThreadNew.getThread(project.getProjectName(), project,
allplatformNames, es4RedisTask); allplatformNames, es4RedisTask);
// ES4RedisThread es4RedisThread = ES4RedisThread.getThread(project.getProjectName(), project, // ES4RedisThread es4RedisThread = ES4RedisThread.getThread(project.getProjectName(), project,
// allplatformNames, es4RedisTask); // allplatformNames, es4RedisTask);
...@@ -80,4 +111,33 @@ public class ES4RedisStart { ...@@ -80,4 +111,33 @@ public class ES4RedisStart {
es4RedisThread.start(); es4RedisThread.start();
} }
} }
/**
* 判断项目map是否一轮结束
* @param projects
* @Title: isProjectMapFull
* @Description: 判断项目map是否一轮结束
* @param @return 设定文件
* @return boolean 返回类型
*/
private boolean isProjectMapFull() {
return PROJECTMAP.values().parallelStream().allMatch(v -> v);
}
/**
* 判断项目本轮内是否可以获取消息流
*
* @Title: canProjectRead
* @Description: 判断项目本轮内是否可以获取消息流
* @param @param project
* @param @return 设定文件
* @return boolean 返回类型
*/
private boolean canProjectRead(Project project) {
if(PROJECTMAP.get(project.getProjectName())) {
return false;
}else {
PROJECTMAP.put(project.getProjectName(), true);
return true;
}
}
} }
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