Browse Source

/*云深处机器狗任务执行过程中出现的一个怪异的问题:

18:22编辑云深处机器狗任务设置定时执行时间为18:26,下发了101给狗,恰好狗的系统比智巡系统早4分钟,定时时间到了之后狗就开始执行任务,狗上报了
41任务执行中指令给智巡,智巡界面出现这条任务,至此一切正常。没想到在4分钟以后,智巡服务器到了18:26分,也执行了那个定时任务,经过查询日志发现,
云深处机器狗在patrol_task_info中有对应任务的点位,所以狗任务当成可见光任务执行了,但是patrol_task_info中没有对应点位的cameraCode映射,因此
抓到的图片均失败。针对这个问题进行打补丁,只有该任务patrol_task的dev_type为2(可见光类型)才执行可见光定时任务。*/
master
htjcAdmin 3 months ago
parent
commit
ca2630d83b
2 changed files with 20 additions and 8 deletions
  1. +5
    -5
      inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsRecordController.java
  2. +15
    -3
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java

+ 5
- 5
inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsRecordController.java View File

@ -42,21 +42,21 @@ public class IvsRecordController {
@GetMapping({"start"}) @GetMapping({"start"})
public Response start(String streamid) { public Response start(String streamid) {
log.debug("START_RECORD record start streamId:{}", streamid);
log.info("START_RECORD record start streamId:{}", streamid);
String code = redisService.getCacheObject(String.format(IvsConst.IVS_STREAM_ID, streamid)); String code = redisService.getCacheObject(String.format(IvsConst.IVS_STREAM_ID, streamid));
log.debug("START_RECORD record start code:{}", code);
log.info("START_RECORD record start code:{}", code);
IvsRecStartVo ivsRecStartVo = new IvsRecStartVo(); IvsRecStartVo ivsRecStartVo = new IvsRecStartVo();
ivsRecStartVo.setCode(code); ivsRecStartVo.setCode(code);
String key = String.format(IvsConst.IVS_RECORD_START_TIME, streamid); String key = String.format(IvsConst.IVS_RECORD_START_TIME, streamid);
redisService.setCacheObject(key, DateUtils.dateTimeNow(), IvsConst.IVS_RECORD_START_TIME_EXPIRE, TimeUnit.MINUTES); redisService.setCacheObject(key, DateUtils.dateTimeNow(), IvsConst.IVS_RECORD_START_TIME_EXPIRE, TimeUnit.MINUTES);
ivsCommonService.get(getLabel(), UriUtils.parse(IvsConst.URI_START_RECORD, ivsRecStartVo)); ivsCommonService.get(getLabel(), UriUtils.parse(IvsConst.URI_START_RECORD, ivsRecStartVo));
log.debug("START_RECORD record start end");
log.info("START_RECORD record start end");
return Response.ok(); return Response.ok();
} }
@GetMapping({"stop"}) @GetMapping({"stop"})
public IvsRecStopView stop(String streamid) { public IvsRecStopView stop(String streamid) {
log.debug("STOP_RECORD record stop streamid:{}", streamid);
log.info("STOP_RECORD record stop streamid:{}", streamid);
String key = String.format(IvsConst.IVS_STREAM_ID, streamid); String key = String.format(IvsConst.IVS_STREAM_ID, streamid);
String code = redisService.getCacheObject(key); String code = redisService.getCacheObject(key);
IvsVo ivsRecordStartVo = new IvsVo(); IvsVo ivsRecordStartVo = new IvsVo();
@ -79,7 +79,7 @@ public class IvsRecordController {
key = String.format(IvsConst.IVS_DOWNLOAD_STREAM_ID, streamid); key = String.format(IvsConst.IVS_DOWNLOAD_STREAM_ID, streamid);
redisService.setCacheObject(key, ivsRecStopView.toJSON(), IvsConst.IVS_STREAM_ID_EXPIRE, TimeUnit.HOURS); redisService.setCacheObject(key, ivsRecStopView.toJSON(), IvsConst.IVS_STREAM_ID_EXPIRE, TimeUnit.HOURS);
log.debug("STOP_RECORD record stop end streamid:{}", streamid);
log.info("STOP_RECORD record stop end streamid:{}", streamid);
return ivsRecStopView; return ivsRecStopView;
} }


+ 15
- 3
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -2019,11 +2019,23 @@ public class JobMainTask {
private synchronized void extractRedisTask(String redisKey, String taskCode) { private synchronized void extractRedisTask(String redisKey, String taskCode) {
List<PatrolTask> patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class); List<PatrolTask> patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class);
if (patrolTaskList != null && !patrolTaskList.isEmpty()) {
log.info(Color.YELLOW + "[JOB] ADD NEW TASK: {}, TASK LIST SIZE: {}" + Color.END, redisKey, patrolTaskList.size());
// 筛选出可见光任务
List<PatrolTask> patrolTaskListEx = new ArrayList<>();
for (PatrolTask patrolTask : patrolTaskList) {
if("2".equals(patrolTask.getDevType())) {
patrolTaskListEx.add(patrolTask);
}
}
if (!patrolTaskListEx.isEmpty()) {
log.info(Color.YELLOW + "PATROL_TASK_LIST_VL: {}, task list size: {}" + Color.END, redisKey, patrolTaskListEx.size());
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES); redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES);
execEveryDayTask(patrolTaskList);
execEveryDayTask(patrolTaskListEx);
} }
// if (patrolTaskList != null && !patrolTaskList.isEmpty()) {
// log.info(Color.YELLOW + "[JOB] ADD NEW TASK: {}, TASK LIST SIZE: {}" + Color.END, redisKey, patrolTaskList.size());
// redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES);
// execEveryDayTask(patrolTaskList);
// }
} }
Map<String, String> taskInfos = new HashMap<>(); Map<String, String> taskInfos = new HashMap<>();


Loading…
Cancel
Save