From 3e90dd51f0be61f4c482204dddc86c779b85bcec Mon Sep 17 00:00:00 2001 From: htjcAdmin Date: Thu, 7 Aug 2025 11:51:34 +0800 Subject: [PATCH] =?UTF-8?q?/*=E5=88=9D=E7=AD=9B=E7=AE=97=E6=B3=95=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=A4=B1=E8=B4=A5=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6?= =?UTF-8?q?bug=E4=BF=AE=E6=94=B9=EF=BC=9A=E7=94=A8=E7=BB=8D=E5=85=B4?= =?UTF-8?q?=E7=AB=9920250806=E7=9A=84=E6=95=B0=E6=8D=AE=E5=9C=A8=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=8E=AF=E5=A2=83=E8=B7=91=E8=A1=A8=E8=AE=A1=E8=AF=86?= =?UTF-8?q?=E5=88=ABA=EF=BC=8C=E5=88=9D=E7=AD=9B=E7=AE=97=E6=B3=95?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6=E4=BC=9A?= =?UTF-8?q?=E4=B8=8D=E6=96=AD=E5=BE=80algorithm:request:queue=E4=B8=AD?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=8C=E6=A0=B7=E7=9A=84=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=EF=BC=8C=20=E5=AF=BC=E8=87=B4=E7=BB=93=E6=9E=9C=E6=9C=89?= =?UTF-8?q?=E5=BE=88=E5=A4=9A=E9=87=8D=E5=A4=8D=E7=9A=84=E3=80=82*/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...orithmRequestRetryableConsumerManager.java | 6 ++- .../impl/AnalyseResponseServiceImpl.java | 42 ++++++++++++------- .../partrolresult/domain/AnalyseRequest.java | 2 +- .../AnalyseRequestRetryableDelegate.java | 5 ++- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestRetryableConsumerManager.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestRetryableConsumerManager.java index 3cad739..b6e406c 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestRetryableConsumerManager.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestRetryableConsumerManager.java @@ -70,7 +70,11 @@ public class AlgorithmRequestRetryableConsumerManager { final int TRIES_MAX = testMode ? 50 : 3; if (retryCount < TRIES_MAX) { request.setRetryCount(retryCount + 1); - redisService.redisTemplate.opsForList().leftPush(AnalyseConstants.ALGORITHM_REQUEST_QUEUE, new Gson().toJson(request)); + final String filterRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(request.getRequestId()); + if(Boolean.FALSE.equals(redisService.redisTemplate.hasKey(filterRedisKey))) { + log.info("ALGORITHM_REQUEST_RETRYABLE_CONSUME_MANAGE NO_KEY_IN_REDIS, filterRedisKey: {}, retryCount: {}", filterRedisKey, retryCount); + redisService.redisTemplate.opsForList().leftPush(AnalyseConstants.ALGORITHM_REQUEST_QUEUE, new Gson().toJson(request)); + } } else { log.info("ALGORITHM_REQUEST_RETRYABLE_CONSUME_MANAGE compensate, retryCount: {}, request: {}", retryCount, request); analyseRequestService.sendCompensateRequest(request); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java index a0f7000..c4347a0 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java @@ -32,8 +32,7 @@ import com.inspect.taskinfo.domain.PatrolTaskInfo; import com.inspect.taskinfo.service.IPatrolTaskInfoService; import com.inspect.taskstatus.domain.PatrolTaskStatus; import com.inspect.taskstatus.service.IPatrolTaskStatusService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -42,9 +41,9 @@ import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; +@Slf4j @Service public class AnalyseResponseServiceImpl implements IAnalyseResponseService { - private final Logger log = LoggerFactory.getLogger(this.getClass()); @Resource private RedisService redisService; @@ -201,9 +200,9 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { } //qinyl - analysisLogService.log(new AnalyseLog(analyseResult.toString(), "1", analyseResult.getTaskPatrolId(), analyseResult.getFilter(), requestId)); try { - analysis(analyseResult); + analysisLogService.log(new AnalyseLog(analyseResult.toString(), "1", analyseResult.getTaskPatrolId(), analyseResult.getFilter(), requestId)); + repositAnalyseAlgorithmResult(analyseResult); } catch (Exception e) { log.error("error", e); } @@ -720,7 +719,7 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { return resMap; } - public void analysis(AnalyseResult analyseResult) { + public void repositAnalyseAlgorithmResult(AnalyseResult analyseResult) { List websocketDataList = new ArrayList<>(); Map resMap = selectObj2PatrolResultMap(analyseResult.getTaskPatrolId()); List resultList = analyseResult.getResultList(); @@ -789,8 +788,9 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { } // 计算初筛算法的进度 - if ("1".equals(analyseResult.getFilter())) { - calcRemoteAlgorithmProgress(analyseResult.getTotalNumber(), analyseResult.getTaskPatrolId()); + if ("1".equals(analyseResult.getFilter()) && !analyseResult.getResultList().isEmpty()) { + final String objectId = analyseResult.getResultList().get(0).getObjectId(); + calcRemoteAlgorithmProgress(analyseResult.getTaskPatrolId(), objectId, analyseResult.getTotalNumber()); } //this.senWebsocket(websocketDataList); @@ -839,7 +839,7 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { return resultAnalysis; } - private void calcRemoteAlgorithmProgress(final int totalNumber, final String taskPatrolledId) { + private void calcRemoteAlgorithmProgress(final String taskPatrolledId, final String objectId, final int totalNumber) { ResultAnalysis resultAnalysis = new ResultAnalysis(); resultAnalysis.setTaskPatrolId(taskPatrolledId); resultAnalysis.setFilter("1"); @@ -856,14 +856,24 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { patrolTaskStatus.setTaskEstimatedTime(algorithmProgress); if ("100.0".equals(algorithmProgress)) { patrolTaskStatus.setEndTime(DateUtil.formatDateTime(new Date())); - log.info(Color.GREEN + "DONE CALC_REMOTE_ALGORITHM_PROGRESS: taskPatrolledId: {}, curNumber: {}, totalNumer: {}, algorithmProgress: {}, db-taskProgress: {}" + Color.END, - taskPatrolledId, resultAnalysisList.size(), totalNumber, algorithmProgress, patrolTaskStatus.getTaskProgress()); + log.info(Color.GREEN + "DONE CALC_REMOTE_ALGORITHM_PROGRESS: taskPatrolledId: {}, objectId: {}, curNumber: {}, totalNumer: {}, algorithmProgress: {}, db-taskProgress: {}" + Color.END, + taskPatrolledId, + objectId, + resultAnalysisList.size(), + totalNumber, + algorithmProgress, + patrolTaskStatus.getTaskProgress()); patrolTaskStatus.setTaskProgress("100.0"); patrolTaskStatus.setTaskState(TaskStatus.DONE.getCode()); patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus); } else { - log.info(Color.GREEN + "RUNNING CALC_REMOTE_ALGORITHM_PROGRESS taskPatrolledId: {}, curNumber: {}, totalNumer: {}, algorithmProgress: {}, status: {}" + Color.END, - taskPatrolledId, resultAnalysisList.size(), totalNumber, algorithmProgress, patrolTaskStatus.getTaskState()); + log.info(Color.GREEN + "RUNNING CALC_REMOTE_ALGORITHM_PROGRESS taskPatrolledId: {}, objectId: {}, curNumber: {}, totalNumer: {}, algorithmProgress: {}, status: {}" + Color.END, + taskPatrolledId, + objectId, + resultAnalysisList.size(), + totalNumber, + algorithmProgress, + patrolTaskStatus.getTaskState()); if (TaskStatus.RUNNING.getCode().equals(patrolTaskStatus.getTaskState())) { patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode()); @@ -898,12 +908,12 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { for (int i = 0; i < thresholdList.size(); ++i) { JSONObject threshold = thresholdList.getJSONObject(i); if (StringUtils.isNotEmpty(type) && type.equals(threshold.getString(AnalyseConstants.ANALYSE_CODE))) { - log.info("selectAlgMap patrolpoint threshold: {}", JSONObject.toJSONString(threshold)); + log.info("selectAlgMap patrolPoint threshold: {}", JSONObject.toJSONString(threshold)); algValue = new AlgValue(threshold.getString(AnalyseConstants.ANALYSE_UPPER_VALUE), threshold.getString(AnalyseConstants.ANALYSE_LOWER_VALUE)); } } } catch (Exception e) { - log.error("selectAlgMap Exception alarmThreshold: {}, Msg: {}", alarmThreshold, e.getMessage()); + log.error("selectAlgMap Exception devId: {}, alarmThreshold: {}, Msg: {}", devId, alarmThreshold, e.getMessage()); } } @@ -920,7 +930,7 @@ public class AnalyseResponseServiceImpl implements IAnalyseResponseService { } if (algValue == null) { - log.info("selectAlgMap threshold is not set"); + log.info("selectAlgMap threshold is not set, devId: {}", devId); algValue = new AlgValue(); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/domain/AnalyseRequest.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/domain/AnalyseRequest.java index f9ece7b..ef49b9f 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/domain/AnalyseRequest.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/domain/AnalyseRequest.java @@ -72,7 +72,7 @@ public class AnalyseRequest implements RetryableRequest, Serializable { analyseResItem.setResults(results); for (String type : analyseReqItem.getTypeList()) { AnalyseResPoint analyseResPoint = new AnalyseResPoint(); - analyseResPoint.setCode("2002"); + analyseResPoint.setCode("2000"); analyseResPoint.setType(type); analyseResPoint.setDesc("-"); analyseResPoint.setResImageUrl(analyseReqItem.getImageUrlList()[0]); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestRetryableDelegate.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestRetryableDelegate.java index 694072f..9a04304 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestRetryableDelegate.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestRetryableDelegate.java @@ -39,7 +39,10 @@ public class AnalyseRequestRetryableDelegate { @SuppressWarnings("unused") @Recover public boolean recover(IOException e, final AnalyseRequest analyseReq) { - log.info("CALL_REMOTE_ANALYZE RECOVER: requestId: {}", analyseReq.getRequestId()); + log.info("CALL_REMOTE_ANALYZE RECOVER: taskPatrolId: {}, retryCount: {}, requestId: {}", + analyseReq.getTaskPatrolId(), + analyseReq.getRetryCount(), + analyseReq.getRequestId()); return false; } }