Browse Source

/*优化代码*/

master
htjcAdmin 4 months ago
parent
commit
610f1dc131
16 changed files with 67 additions and 88 deletions
  1. +4
    -9
      inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java
  2. +18
    -35
      inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java
  3. +5
    -4
      inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java
  4. +2
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/AnalysisController.java
  5. +1
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IAnalyseResponseService.java
  6. +3
    -4
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestConsumerManager.java
  7. +3
    -8
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestProcessConsumer.java
  8. +4
    -4
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestRetryableConsumerManager.java
  9. +2
    -3
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmResponseConsumerManager.java
  10. +2
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmResponseRetryableConsumerManager.java
  11. +5
    -5
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java
  12. +2
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  13. +2
    -3
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestDelayQueueListener.java
  14. +2
    -5
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestRetryableDelegate.java
  15. +1
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java
  16. +11
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IAnalyseRequestService.java

+ 4
- 9
inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java View File

@ -79,15 +79,10 @@ public class IvsControlController {
redisService.setCacheMapValue(IvsConst.IVS_PRESET_MAP, ivsPresetVo.getPreset(), ivsPresetVo.getPreset());
return Response.ok();
} else if (command.equals("goto")) {
try {
String uuid = ivsResourceRetryableDelegate.getLabel();
log.info("URI_PTZ_CONTROL GOTO UUID: {}, CameraCode: {}", uuid, ivsPresetVo.getCameraCode());
ivsPresetVo.setUUID(uuid);
return ivsResourceRetryableDelegate.gotoSnapshotPresetRetryable(version, ivsPresetVo);
} catch (IOException e) {
log.info("presetGoto UUID:{}, MSG: {}", ivsPresetVo.getUUID(), e.getMessage() + " final fail");
return Response.fail();
}
String uuid = ivsResourceRetryableDelegate.getLabel();
log.info("URI_PTZ_CONTROL GOTO UUID: {}, CameraCode: {}", uuid, ivsPresetVo.getCameraCode());
ivsPresetVo.setUUID(uuid);
return ivsResourceRetryableDelegate.gotoSnapshotPresetRetryable(version, ivsPresetVo);
} else if (command.equals("remove")) {
String code = ivsPresetVo.getCode();
String[] codeArray = code.split(StringUtils.HASHTAG);


+ 18
- 35
inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java View File

@ -340,15 +340,9 @@ public class IvsDeviceController {
final String uuid = ivsResourceRetryableDelegate.getLabel();
log.info(com.inspect.base.core.constant.Color.MAGENTA + "[IVS] CHANNEL_SNAPSHOT: {}" + com.inspect.base.core.constant.Color.END, ivsDevChanSnapVo.getCameraCode());
IvsSnapshotView ivsSnapshotView;
try {
ivsDevChanSnapVo.setUUID(uuid);
ivsSnapshotView = ivsResourceRetryableDelegate.getSnapshotRetryable(ivsDevChanSnapVo);
} catch (IOException e) {
log.info("URI_PLATFORM_SNAPSHOT FINAL FAIL Msg: {}", e.getMessage());
return ResponseEntity.ok().body(new InputStreamResource(ivsResourceRetryableDelegate.generateErrorImage()));
}
if(ivsSnapshotView == null) {
ivsDevChanSnapVo.setUUID(uuid);
ivsSnapshotView = ivsResourceRetryableDelegate.getSnapshotRetryable(ivsDevChanSnapVo);
if (ivsSnapshotView == null) {
log.info("URI_PLATFORM_SNAPSHOT FROM RECOVER!!!");
return ResponseEntity.ok().body(new InputStreamResource(ivsResourceRetryableDelegate.generateErrorImage()));
}
@ -357,26 +351,20 @@ public class IvsDeviceController {
delayBeforeGetPicture();
IvsPlatformSnapshotView snapShotView;
try {
IvsChanSnapVo ivsChanSnapVo = new IvsChanSnapVo();
ivsChanSnapVo.setUUID(uuid);
ivsChanSnapVo.setName(presetName);
ivsChanSnapVo.setId(patrolPointId);
ivsChanSnapVo.setCameraCode(ivsDevChanSnapVo.getCameraCode());
ivsChanSnapVo.setDomainCode(ivsDevChanSnapVo.getDomainCode());
ivsChanSnapVo.setTaskID(ivsSnapshotView.getTaskID());
ivsChanSnapVo.setHost(ivsDevChanSnapVo.getHost());
ivsChanSnapVo.setPort(ivsDevChanSnapVo.getPort());
ivsChanSnapVo.setAddress(ivsDevChanSnapVo.getAddress());
ivsChanSnapVo.setUsername(ivsDevChanSnapVo.getUsername());
ivsChanSnapVo.setPassword(ivsDevChanSnapVo.getPassword());
snapShotView = ivsResourceRetryableDelegate.getSnapshotListRetryable(ivsChanSnapVo);
} catch (IOException e) {
log.info("URI_SNAPSHOT_LIST FINAL FAIL Msg: {}", e.getMessage());
return ResponseEntity.ok().body(new InputStreamResource(ivsResourceRetryableDelegate.generateErrorImage()));
}
if(snapShotView == null) {
IvsChanSnapVo ivsChanSnapVo = new IvsChanSnapVo();
ivsChanSnapVo.setUUID(uuid);
ivsChanSnapVo.setName(presetName);
ivsChanSnapVo.setId(patrolPointId);
ivsChanSnapVo.setCameraCode(ivsDevChanSnapVo.getCameraCode());
ivsChanSnapVo.setDomainCode(ivsDevChanSnapVo.getDomainCode());
ivsChanSnapVo.setTaskID(ivsSnapshotView.getTaskID());
ivsChanSnapVo.setHost(ivsDevChanSnapVo.getHost());
ivsChanSnapVo.setPort(ivsDevChanSnapVo.getPort());
ivsChanSnapVo.setAddress(ivsDevChanSnapVo.getAddress());
ivsChanSnapVo.setUsername(ivsDevChanSnapVo.getUsername());
ivsChanSnapVo.setPassword(ivsDevChanSnapVo.getPassword());
snapShotView = ivsResourceRetryableDelegate.getSnapshotListRetryable(ivsChanSnapVo);
if (snapShotView == null) {
log.info("URI_SNAPSHOT_LIST FROM RECOVER!!!");
return ResponseEntity.ok().body(new InputStreamResource(ivsResourceRetryableDelegate.generateErrorImage()));
}
@ -384,12 +372,7 @@ public class IvsDeviceController {
String cameraCode = snapShotView.getSnapshotInfoList().getSnapshotInfos().get(0).getCameraCode();
String pictureUrl = snapShotView.getSnapshotInfoList().getSnapshotInfos().get(0).getPictureUrl();
log.info(com.inspect.base.core.constant.Color.MAGENTA + "[IVS] SNAPSHOT cameraCode: {}, pictureUrl: {}" + com.inspect.base.core.constant.Color.END, cameraCode, pictureUrl);
try {
return ivsResourceRetryableDelegate.downloadPictureRetryable(uuid, pictureUrl);
} catch (IOException e) {
log.info("所有重试失败2, 生成一个默认图片: {}, msg: {}", pictureUrl, e.getMessage());
return ResponseEntity.ok().body(new InputStreamResource(ivsResourceRetryableDelegate.generateErrorImage()));
}
return ivsResourceRetryableDelegate.downloadPictureRetryable(uuid, pictureUrl);
} catch (Exception e) {
log.info("do not know where is the exception: ", e);
return ResponseEntity.ok().body(new InputStreamResource(ivsResourceRetryableDelegate.generateErrorImage()));


+ 5
- 4
inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java View File

@ -57,10 +57,10 @@ public class IvsResourceRetryableDelegate {
// 转到预置位
@Retryable(
value = IOException.class,
value = RuntimeException.class,
maxAttempts = RETRYABLE_MAX,
backoff = @Backoff(delay = 2000)) // 每次重试间隔 2
public Response<Void> gotoSnapshotPresetRetryable(String version, IvsPresetVo ivsPresetVo) throws IOException {
public Response<Void> gotoSnapshotPresetRetryable(String version, IvsPresetVo ivsPresetVo) {
int retryCount = RetrySynchronizationManager.getContext() != null
? RetrySynchronizationManager.getContext().getRetryCount() + 1
: 1;
@ -92,14 +92,15 @@ public class IvsResourceRetryableDelegate {
log.info("URI_PTZ_CONTROL SUCCESS retryCount: {}, apiAddr: {}", apiAddr, retryCount);
} catch (Exception e) {
log.info("URI_PTZ_CONTROL GOTO FAIL retryCount: {}, UUID: {}", retryCount, ivsPresetVo.getUUID());
throw new IOException("URI_PTZ_CONTROL GOTO: FAIL UUID: " + ivsPresetVo.getUUID() + ", retryCount: " + retryCount + ", MSG: " + e);
//throw new IOException("URI_PTZ_CONTROL GOTO: FAIL UUID: " + ivsPresetVo.getUUID() + ", retryCount: " + retryCount + ", MSG: " + e);
throw new RuntimeException("URI_PTZ_CONTROL GOTO: FAIL UUID: " + ivsPresetVo.getUUID() + ", retryCount: " + retryCount + ", MSG: " + e);
}
return Response.ok();
}
@SuppressWarnings("unused")
@Recover
public Response<Void> recover(IOException e, String version, IvsPresetVo ivsPresetVo) {
public Response<Void> recover(RuntimeException e, String version, IvsPresetVo ivsPresetVo) {
log.info("URI_PTZ_CONTROL GOTO RECOVER UUID: {}, MSG: {}", ivsPresetVo.getUUID(), e.getMessage());
return Response.fail();
}


+ 2
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/controller/AnalysisController.java View File

@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.inspect.analysis.domain.*;
import com.inspect.analysis.service.IAnalyseRespService;
import com.inspect.analysis.service.IAnalyseResponseService;
import com.inspect.analysis.service.IResultAnalysisService;
import com.inspect.base.core.constant.Color;
import com.inspect.base.core.constant.RedisConst;
@ -65,7 +65,7 @@ public class AnalysisController extends BaseController {
MessageUtils messageUtils;
@Resource
private IAnalyseRespService analysisService;
private IAnalyseResponseService analysisService;
public AnalysisController(IResultAnalysisService resultAnalysisService, IPatrolResultService patrolResultService, FeignTaskClient feignTaskClient, IPatrolTaskResultMainService patrolTaskResultMainService, IUploadServer iUploadServer, RedisService redisService, IPatrolTaskInfoService patrolTaskInfoService, WebsocketService WebsocketService, IPatrolTaskService patrolTaskService) {
this.resultAnalysisService = resultAnalysisService;


inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IAnalyseRespService.java → inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IAnalyseResponseService.java View File


+ 3
- 4
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestConsumerManager.java View File

@ -4,10 +4,9 @@ import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.base.core.constant.Color;
import com.inspect.base.redis.service.RedisService;
import com.inspect.partrolresult.domain.AnalyseRequest;
import com.inspect.partrolresult.service.AnalyseRemoteService;
import com.inspect.partrolresult.service.IAnalyseRequestService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@ -23,7 +22,7 @@ public class AlgorithmRequestConsumerManager {
private RedisService redisService;
@Resource
private AnalyseRemoteService analyseRemoteService;
private IAnalyseRequestService analyseRequestService;
@PostConstruct
public void initConsumer() {
@ -36,7 +35,7 @@ public class AlgorithmRequestConsumerManager {
request -> {
try {
log.info("AlgorithmRequestConsumerManager queueSize: {}, request: {}", getQueueSize(), request);
analyseRemoteService.sendRequest(request, request.getTypeList(), request.isFilter());
analyseRequestService.sendRequest(request, request.getTypeList(), request.isFilter());
} catch (Exception e) {
log.info(Color.RED + "AlgorithmRequestConsumerManager error queueSize: {}, request: {}" + Color.END, getQueueSize(), request);
}


+ 3
- 8
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestProcessConsumer.java View File

@ -1,21 +1,16 @@
package com.inspect.analysis.service.impl;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.base.core.constant.Color;
import com.inspect.base.redis.service.RedisService;
import com.inspect.partrolresult.domain.AnalyseRequest;
import com.inspect.partrolresult.service.AnalyseRemoteService;
import com.inspect.partrolresult.service.IAnalyseRequestService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
import java.time.Duration;
//@Component
public class AlgorithmRequestProcessConsumer {
@ -28,7 +23,7 @@ public class AlgorithmRequestProcessConsumer {
private RedisService redisService;
@Resource
private AnalyseRemoteService analyseRemoteService;
private IAnalyseRequestService analyseRequestService;
//@Scheduled(fixedDelay = 1000)
// @Scheduled(fixedDelayString = "${task.scheduler.request.delay-ms:3000}")
@ -57,7 +52,7 @@ public class AlgorithmRequestProcessConsumer {
500, // 空队列时等待 500ms
request -> {
try {
analyseRemoteService.sendRequest(request, request.getTypeList(), request.isFilter());
analyseRequestService.sendRequest(request, request.getTypeList(), request.isFilter());
} catch (IOException e) {
logger.error(e.getMessage(), e);
}


+ 4
- 4
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmRequestRetryableConsumerManager.java View File

@ -4,7 +4,7 @@ import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.base.redis.service.RedisService;
import com.inspect.partrolresult.domain.AnalyseRequest;
import com.inspect.partrolresult.service.AnalyseRemoteService;
import com.inspect.partrolresult.service.IAnalyseRequestService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
@ -41,7 +41,7 @@ public class AlgorithmRequestRetryableConsumerManager {
private RedisService redisService;
@Resource
private AnalyseRemoteService analyseRemoteService;
private IAnalyseRequestService analyseRequestService;
private final ExecutorService executor = Executors.newFixedThreadPool(10);
@ -62,7 +62,7 @@ public class AlgorithmRequestRetryableConsumerManager {
private void processRequest(AnalyseRequest request) {
try {
log.info("ALGORITHM_REQUEST_RETRYABLE_CONSUME_MANAGE queueSize: {}, request: {}", getQueueSize(), request);
analyseRemoteService.sendRequest(request, request.getTypeList(), request.isFilter());
analyseRequestService.sendRequest(request, request.getTypeList(), request.isFilter());
} catch (IOException e) {
// 可以记录失败次数避免无限重试
int retryCount = Optional.of(request.getRetryCount()).orElse(0);
@ -73,7 +73,7 @@ public class AlgorithmRequestRetryableConsumerManager {
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);
analyseRemoteService.sendCompensateRequest(request);
analyseRequestService.sendCompensateRequest(request);
}
}
}


+ 2
- 3
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmResponseConsumerManager.java View File

@ -2,11 +2,10 @@ package com.inspect.analysis.service.impl;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.analysis.domain.AnalyseResult;
import com.inspect.analysis.service.IAnalyseRespService;
import com.inspect.analysis.service.IAnalyseResponseService;
import com.inspect.base.core.constant.Color;
import com.inspect.base.redis.service.RedisService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@ -23,7 +22,7 @@ public class AlgorithmResponseConsumerManager {
private RedisService redisService;
@Resource
private IAnalyseRespService analysisService;
private IAnalyseResponseService analysisService;
@PostConstruct
public void initConsumer() {


+ 2
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AlgorithmResponseRetryableConsumerManager.java View File

@ -2,7 +2,7 @@ package com.inspect.analysis.service.impl;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.analysis.domain.AnalyseResult;
import com.inspect.analysis.service.IAnalyseRespService;
import com.inspect.analysis.service.IAnalyseResponseService;
import com.inspect.base.core.constant.Color;
import com.inspect.base.redis.service.RedisService;
import lombok.extern.slf4j.Slf4j;
@ -24,7 +24,7 @@ public class AlgorithmResponseRetryableConsumerManager {
private RedisService redisService;
@Resource
private IAnalyseRespService analysisService;
private IAnalyseResponseService analysisService;
private final ExecutorService executor = Executors.newFixedThreadPool(10);


inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseRespServiceImpl.java → inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalyseResponseServiceImpl.java View File


+ 2
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -43,7 +43,7 @@ import com.inspect.partrolresult.client.WebsocketService;
import com.inspect.partrolresult.domain.*;
import com.inspect.partrolresult.mapper.DeviceStateMapper;
import com.inspect.partrolresult.mapper.PatrolResultMapper;
import com.inspect.partrolresult.service.AnalyseRemoteService;
import com.inspect.partrolresult.service.IAnalyseRequestService;
import com.inspect.partrolresult.service.IPatrolResultService;
import com.inspect.partrolresult.util.ImageUtil;
import com.inspect.partrolresultAux.domain.PatrolResultAux;
@ -163,7 +163,7 @@ public class PatrolResultController extends BaseController {
private PatrolResultMapper patrolResultMapper;
@Resource
private AnalyseRemoteService analyseRemoteService;
private IAnalyseRequestService analyseRequestService;
@Resource
private MessageUtils messageUtils;


+ 2
- 3
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestDelayQueueListener.java View File

@ -14,7 +14,6 @@ import javax.annotation.Resource;
@Slf4j
@Component
public class AnalyseRequestDelayQueueListener implements InitializingBean {
private final String ListenerName = "AnalyseRequest-DelayQueue-Listener";
@Resource
@ -24,7 +23,7 @@ public class AnalyseRequestDelayQueueListener implements InitializingBean {
private RedisService redisService;
@Resource
private AnalyseRemoteService analyseRemoteService;
private IAnalyseRequestService analyseRequestService;
@Override
public void afterPropertiesSet() {
@ -55,7 +54,7 @@ public class AnalyseRequestDelayQueueListener implements InitializingBean {
request.getTaskPatrolId(),
request.getRequestId(),
request);
analyseRemoteService.sendCompensateRequest(request);
analyseRequestService.sendCompensateRequest(request);
} else {
// 正常业务已完成什么也不做正常情况下不会进入这个逻辑
log.info("ANALYSE_REQUEST_DELAY_QUEUE CONSUMED: patrolPointId: {}, requestId: {}",


+ 2
- 5
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestRetryableDelegate.java View File

@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.analysis.utils.SimpleHttpClient;
import com.inspect.partrolresult.domain.AnalyseRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.retry.RetryContext;
import org.springframework.retry.annotation.Backoff;
import org.springframework.retry.annotation.Recover;
@ -17,9 +14,9 @@ import org.springframework.stereotype.Component;
import java.io.IOException;
@Slf4j
@Component
public class AnalyseRequestRetryableDelegate {
private static final Logger log = LoggerFactory.getLogger(AnalyseRemoteService.class);
@Retryable(
value = IOException.class,


inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java → inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRequestServiceImpl.java View File


+ 11
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IAnalyseRequestService.java View File

@ -0,0 +1,11 @@
package com.inspect.partrolresult.service;
import com.inspect.partrolresult.domain.AnalyseRequest;
import java.io.IOException;
public interface IAnalyseRequestService {
void sendRequest(AnalyseRequest analyseReq, String[] typeList, boolean isFilter) throws IOException;
void sendCompensateRequest(AnalyseRequest request);
}

Loading…
Cancel
Save