Browse Source

执行任务时检测有相同任务在执行

master
lijiuwei 7 months ago
parent
commit
7b22a79aef
4 changed files with 17 additions and 5 deletions
  1. +6
    -0
      inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java
  2. +2
    -2
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  3. +1
    -1
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  4. +8
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java

+ 6
- 0
inspect-base/inspect-base-redis/src/main/java/com/inspect/base/redis/service/RedisService.java View File

@ -40,6 +40,12 @@ public class RedisService {
redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
}
public <T> 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);
}


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

@ -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<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());
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey);
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey, 5L, TimeUnit.MINUTES);
execEveryDayTask(patrolTaskList);
}
}


+ 1
- 1
inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java View File

@ -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<PatrolTask> cameraPatrolTasks = redisService.getCacheObject(key);
if (!cameraPatrolTasks.isEmpty()) {


+ 8
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -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) {


Loading…
Cancel
Save