From 7b22a79aef342918852a528bfc2894c6738e3b86 Mon Sep 17 00:00:00 2001 From: lijiuwei Date: Mon, 19 May 2025 11:08:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BB=BB=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=9C=89=E7=9B=B8=E5=90=8C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=9C=A8=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/inspect/base/redis/service/RedisService.java | 6 ++++++ .../main/java/com/inspect/job/task/JobMainTask.java | 4 ++-- .../exec/controller/PatrolTaskExecController.java | 2 +- .../controller/PatrolTaskStatusController.java | 10 ++++++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java b/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java index dc4ba23..7b72757 100644 --- a/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java +++ b/inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java @@ -40,6 +40,12 @@ public class RedisService { redisTemplate.opsForValue().set(key, value, timeout, timeUnit); } + public void setCacheObjectOfTask(String key, String taskCode, T value, Long timeout, TimeUnit timeUnit) { + String redisKey = key + taskCode; + redisTemplate.opsForValue().set(redisKey, value, timeout, timeUnit); + logger.info("RedisService.setCacheObjectOfTaskWithTimeout: {}", redisKey); + } + public boolean expire(String key, long timeout) { return expire(key, timeout, TimeUnit.SECONDS); } diff --git a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java index 19fdda7..0cd1d1f 100644 --- a/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java +++ b/inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java @@ -921,7 +921,7 @@ public class JobMainTask { String immediatelyExecTaskTime = DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss, new Date()); redisService.setCacheObjectOfTask(RedisConst.IMMEDIATELY_EXEC_TASK_TIME, patrolTask.getTaskCode(), immediatelyExecTaskTime); - redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTask.getTaskCode(), RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime); + redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, patrolTask.getTaskCode(), RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime, 5L, TimeUnit.MINUTES); resetRecordCounter(patrolTask.getTaskCode()); log.info("TASK REC CNT: {}", cameraPatrolTasks.size());//TASK REC CNT: 1 setRedisRecordCount(patrolTask.getTaskCode(), cameraPatrolTasks.size()); @@ -1639,7 +1639,7 @@ public class JobMainTask { List 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()); - redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey); + redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES); execEveryDayTask(patrolTaskList); } } diff --git a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java index 8ab40d8..08cf2a3 100644 --- a/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java +++ b/inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java @@ -642,7 +642,7 @@ public class PatrolTaskExecController extends BaseController { private void extracted(String key, String taskCode) { log.info(Color.RED + "[EXEC] Add new task [{}]" + Color.END, key);//日志里没搜到 - redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, key); + redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, key, 5L, TimeUnit.MINUTES); log.info("[EXEC] key: {}", key); List cameraPatrolTasks = redisService.getCacheObject(key); if (!cameraPatrolTasks.isEmpty()) { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java index 8884bb6..5ece11b 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java @@ -584,8 +584,14 @@ public class PatrolTaskStatusController extends BaseController { //立即执行任务 @GetMapping({"/controlChange"}) public AjaxResult controlChange(PatrolTask patrolTask) { - PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); - return issueToRobot(patrol);//type=41 立即执行任务 + String taskCode = redisService.getCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, String.valueOf(patrolTask.getTaskId())); + if (!StringUtils.isEmpty(taskCode)) { + log.info("[TASK] CURRENT EXEC TASK: {}", taskCode); + return AjaxResult.error(501, "THE TASK IS RUNNING!"); + } else { + PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId()); + return issueToRobot(patrol);//type=41 立即执行任务 + } } public void sendTaskToVideo(final PatrolTask patrolTask) {