Commit 12e3bbf8 by shenjunjie

Merge branch 'feature' into 'release'

全网搜数据分析词云调整

See merge request !582
parents e4ed37fd 038edc21
...@@ -4,4 +4,6 @@ package com.zhiwei.brandkbs2.dao; ...@@ -4,4 +4,6 @@ package com.zhiwei.brandkbs2.dao;
import com.zhiwei.brandkbs2.pojo.MarkSearchAnalyzeTask; import com.zhiwei.brandkbs2.pojo.MarkSearchAnalyzeTask;
public interface MarkSearchAnalyzeTaskDao extends BaseMongoDao<MarkSearchAnalyzeTask>{ public interface MarkSearchAnalyzeTaskDao extends BaseMongoDao<MarkSearchAnalyzeTask>{
long deleteExpire(long expireTime);
} }
package com.zhiwei.brandkbs2.dao.impl; package com.zhiwei.brandkbs2.dao.impl;
import com.mongodb.client.result.DeleteResult;
import com.zhiwei.brandkbs2.dao.MarkSearchAnalyzeTaskDao; import com.zhiwei.brandkbs2.dao.MarkSearchAnalyzeTaskDao;
import com.zhiwei.brandkbs2.pojo.MarkSearchAnalyzeTask; import com.zhiwei.brandkbs2.pojo.MarkSearchAnalyzeTask;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@Component("markSearchAnalyzeTaskDao") @Component("markSearchAnalyzeTaskDao")
...@@ -11,4 +14,11 @@ public class MarkSearchAnalyzeTaskDaoImpl extends BaseMongoDaoImpl<MarkSearchAna ...@@ -11,4 +14,11 @@ public class MarkSearchAnalyzeTaskDaoImpl extends BaseMongoDaoImpl<MarkSearchAna
public MarkSearchAnalyzeTaskDaoImpl() { public MarkSearchAnalyzeTaskDaoImpl() {
super(COLLECTION_NAME); super(COLLECTION_NAME);
} }
@Override
public long deleteExpire(long expireTime) {
Query query = Query.query(Criteria.where("cTime").lt(expireTime));
DeleteResult remove = mongoTemplate.remove(query, COLLECTION_NAME);
return remove.getDeletedCount();
}
} }
...@@ -39,4 +39,6 @@ public class MarkSearchAnalyzeTask extends AbstractBaseMongo { ...@@ -39,4 +39,6 @@ public class MarkSearchAnalyzeTask extends AbstractBaseMongo {
* 创建时间 * 创建时间
*/ */
private Long cTime; private Long cTime;
private Long uTime;
} }
...@@ -44,6 +44,11 @@ public interface TaskService{ ...@@ -44,6 +44,11 @@ public interface TaskService{
void cleanAggreeTask(); void cleanAggreeTask();
/** /**
* 清理过期数据分析任务
*/
void cleanSearchAnalyzeTask();
/**
* 事件相关更新 * 事件相关更新
*/ */
void eventUpdate(); void eventUpdate();
......
...@@ -3114,19 +3114,34 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -3114,19 +3114,34 @@ public class MarkDataServiceImpl implements MarkDataService {
@Override @Override
public List<JSONObject> getSearchAnalyzeHighWord(MarkSearchDTO dto) { public List<JSONObject> getSearchAnalyzeHighWord(MarkSearchDTO dto) {
dto.setProjectId(UserThreadLocal.getProjectId()); try {
MarkSearchAnalyzeTask existTask = markSearchAnalyzeTaskDao.findOne("markSearchDTO", dto); dto.setProjectId(UserThreadLocal.getProjectId());
if (Objects.nonNull(existTask)){ MarkSearchAnalyzeTask existTask = markSearchAnalyzeTaskDao.findOne("markSearchDTO", dto);
return existTask.getHighWord(); long sTime = System.currentTimeMillis();
if (Objects.nonNull(existTask)) {
while (!existTask.getFinish()) {
existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto);
long eTime = System.currentTimeMillis();
if (existTask.getFinish() || eTime - sTime >= 3 * 60 * 1000) {
break;
}
Thread.sleep(10000L);
}
return existTask.getHighWord();
}
MarkSearchAnalyzeTask task = new MarkSearchAnalyzeTask(dto, null, null, false, System.currentTimeMillis(), System.currentTimeMillis());
markSearchAnalyzeTaskDao.insertOne(task);
List<JSONObject> highWord = generateHighWord(dto);
Update update = new Update();
update.set("finish", true);
update.set("highWord", highWord);
update.set("uTime", System.currentTimeMillis());
markSearchAnalyzeTaskDao.updateOneByIdWithField(task.getId(), update);
return highWord;
}catch (Exception e){
ExceptionCast.cast(CommonCodeEnum.FAIL, "查舆情-数据分析-生成词云getSearchAnalyzeHighWord异常-", e);
} }
MarkSearchAnalyzeTask task = new MarkSearchAnalyzeTask(dto, null,null, false, System.currentTimeMillis()); return Collections.emptyList();
markSearchAnalyzeTaskDao.insertOne(task);
List<JSONObject> highWord = generateHighWord(dto);
Update update = new Update();
update.set("finish", true);
update.set("highWord", highWord);
markSearchAnalyzeTaskDao.updateOneByIdWithField(task.getId(), update);
return highWord;
} }
@Override @Override
...@@ -3427,7 +3442,7 @@ public class MarkDataServiceImpl implements MarkDataService { ...@@ -3427,7 +3442,7 @@ public class MarkDataServiceImpl implements MarkDataService {
searchHelper.setPostFilter(postFilter); searchHelper.setPostFilter(postFilter);
searchHelper.setSize(1000); searchHelper.setSize(1000);
List<String> textList = new ArrayList<>(); List<String> textList = new ArrayList<>();
for (int i = 1; i <= 10; i++) { for (int i = 1; i <= 5; i++) {
searchHelper.setFrom((i - 1) * 1000); searchHelper.setFrom((i - 1) * 1000);
SearchResponse searchResponse = esClientDao.searchResponse(searchHelper); SearchResponse searchResponse = esClientDao.searchResponse(searchHelper);
for (SearchHit searchHit : searchResponse.getHits().getHits()) { for (SearchHit searchHit : searchResponse.getHits().getHits()) {
......
...@@ -692,18 +692,33 @@ public class SearchWholeServiceImpl implements SearchWholeService { ...@@ -692,18 +692,33 @@ public class SearchWholeServiceImpl implements SearchWholeService {
@Override @Override
public List<JSONObject> getSearchWholeAnalyzeHighWord(SearchFilterDTO dto) { public List<JSONObject> getSearchWholeAnalyzeHighWord(SearchFilterDTO dto) {
MarkSearchAnalyzeTask existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto); try {
if (Objects.nonNull(existTask)){ MarkSearchAnalyzeTask existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto);
return existTask.getHighWord(); long sTime = System.currentTimeMillis();
} if (Objects.nonNull(existTask)) {
MarkSearchAnalyzeTask task = new MarkSearchAnalyzeTask(null, dto,null, false, System.currentTimeMillis()); while (!existTask.getFinish()) {
markSearchAnalyzeTaskDao.insertOne(task); existTask = markSearchAnalyzeTaskDao.findOne("searchFilterDTO", dto);
List<JSONObject> highWord = generateHighWord(dto); long eTime = System.currentTimeMillis();
Update update = new Update(); if (existTask.getFinish() || eTime - sTime >= 3 * 60 * 1000) {
update.set("finish", true); break;
update.set("highWord", highWord); }
markSearchAnalyzeTaskDao.updateOneByIdWithField(task.getId(), update); Thread.sleep(10000L);
return highWord; }
return existTask.getHighWord();
}
MarkSearchAnalyzeTask task = new MarkSearchAnalyzeTask(null, dto, null, false, System.currentTimeMillis(), System.currentTimeMillis());
markSearchAnalyzeTaskDao.insertOne(task);
List<JSONObject> highWord = generateHighWord(dto);
Update update = new Update();
update.set("finish", true);
update.set("highWord", highWord);
update.set("uTime", System.currentTimeMillis());
markSearchAnalyzeTaskDao.updateOneByIdWithField(task.getId(), update);
return highWord;
}catch (Exception e){
ExceptionCast.cast(CommonCodeEnum.FAIL, "全网搜舆情分析getSearchWholeAnalyzeHighWord异常-", e);
}
return Collections.emptyList();
} }
@Override @Override
...@@ -785,7 +800,7 @@ public class SearchWholeServiceImpl implements SearchWholeService { ...@@ -785,7 +800,7 @@ public class SearchWholeServiceImpl implements SearchWholeService {
searchHelper.setSize(1000); searchHelper.setSize(1000);
searchHelper.setIndexes(esClientDao.getAllIndexes(dto.getStartTime(), dto.getEndTime())); searchHelper.setIndexes(esClientDao.getAllIndexes(dto.getStartTime(), dto.getEndTime()));
List<String> textList = new ArrayList<>(); List<String> textList = new ArrayList<>();
for (int i = 1; i <= 10; i++) { for (int i = 1; i <= 5; i++) {
searchHelper.setFrom((i - 1) * 1000); searchHelper.setFrom((i - 1) * 1000);
SearchResponse searchResponse = esClientDao.searchResponse(searchHelper); SearchResponse searchResponse = esClientDao.searchResponse(searchHelper);
for (SearchHit searchHit : searchResponse.getHits().getHits()) { for (SearchHit searchHit : searchResponse.getHits().getHits()) {
......
...@@ -92,6 +92,9 @@ public class TaskServiceImpl implements TaskService { ...@@ -92,6 +92,9 @@ public class TaskServiceImpl implements TaskService {
@Resource(name = "aiSearchQuestionRecordDao") @Resource(name = "aiSearchQuestionRecordDao")
private AISearchQuestionRecordDao aiSearchQuestionRecordDao; private AISearchQuestionRecordDao aiSearchQuestionRecordDao;
@Resource(name = "markSearchAnalyzeTaskDao")
MarkSearchAnalyzeTaskDao markSearchAnalyzeTaskDao;
@Resource(name = "brandkbsTaskServiceImpl") @Resource(name = "brandkbsTaskServiceImpl")
BrandkbsTaskService brandkbsTaskService; BrandkbsTaskService brandkbsTaskService;
...@@ -342,6 +345,12 @@ public class TaskServiceImpl implements TaskService { ...@@ -342,6 +345,12 @@ public class TaskServiceImpl implements TaskService {
} }
@Override @Override
public void cleanSearchAnalyzeTask() {
long deleteCount = markSearchAnalyzeTaskDao.deleteExpire(System.currentTimeMillis() - Constant.ONE_WEEK);
log.info("本次清理过期数据分析任务:{}条", deleteCount);
}
@Override
public void eventUpdate() { public void eventUpdate() {
for (Project project : projectService.getAllProjectsWithStart()) { for (Project project : projectService.getAllProjectsWithStart()) {
List<Event> events = eventService.findNotEndEventByProjectId(project.getId()); List<Event> events = eventService.findNotEndEventByProjectId(project.getId());
......
...@@ -71,9 +71,10 @@ public class ControlCenter { ...@@ -71,9 +71,10 @@ public class ControlCenter {
@Async("scheduledExecutor") @Async("scheduledExecutor")
@Scheduled(cron = "0 0 * * * ? ") @Scheduled(cron = "0 0 * * * ? ")
public void cleanAggreeTask(){ public void cleanAggreeTask(){
log.info("每小时清理过期聚合任务-启动"); log.info("每小时清理过期任务-启动");
try { try {
taskService.cleanAggreeTask(); taskService.cleanAggreeTask();
taskService.cleanSearchAnalyzeTask();
} catch (Exception e) { } catch (Exception e) {
log.info("每小时清理过期聚合任务-出错", e); log.info("每小时清理过期聚合任务-出错", e);
} finally { } finally {
......
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