Browse Source

多任务执行优化

master
lijiuwei 8 months ago
parent
commit
39fadbdc09
4 changed files with 19 additions and 68 deletions
  1. +0
    -1
      inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java
  2. +5
    -28
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  3. +3
    -14
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  4. +11
    -25
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java

+ 0
- 1
inspect-base/inspect-base-core/src/main/java/com/inspect/base/core/constant/RedisConst.java View File

@ -11,6 +11,5 @@ public class RedisConst {
public static final String TASK_PATROL_STATE = "TASK_PATROL_STATE";
public static final String TASK_RECORD_CNT = "TASK_RECORD_CNT";
public static final String TASK_CURRENT_CODE = "TASK_CURRENT_CODE@";
public static final String TASK_TIMER_CLOCK = "TASK_TIMER_CLOCK";
public static final String IMMEDIATELY_EXEC_TASK_TIME = "IMMEDIATELY_EXEC_TASK_TIME";
}

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

@ -663,22 +663,13 @@ public class JobMainTask {
return cursor;
}
private void resetTaskTimerClock() {
redisService.setCacheObject(RedisConst.TASK_TIMER_CLOCK, System.currentTimeMillis());
}
private void resetExecRecordCounter() {
synchronized private void resetRecordCounter() {
execRecordCounter = 0;
redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, 0);
}
synchronized private void taskStartInitialize() {
resetTaskTimerClock();
resetExecRecordCounter();
}
synchronized private void resetRecordCounter() {
resetExecRecordCounter();
redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, 0);
private void setRedisRecordCount(final int size) {
redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, size);
}
synchronized private void resetRedisCurrentCode() {
@ -689,14 +680,6 @@ public class JobMainTask {
redisService.deleteObject(RedisConst.TASK_CURRENT_CODE);
}
synchronized private void calcExecCostTime(final String oldPatrolId) {
Long startTime = redisService.getCacheObject(RedisConst.TASK_TIMER_CLOCK);
if (startTime != null) {
log.info(Color.MAGENTA + "[JOB] TASK: [{}], COST: [{} ms]" + Color.END, oldPatrolId, System.currentTimeMillis() - startTime);
redisService.setCacheObject(RedisConst.TASK_TIMER_CLOCK, 0L);
}
}
private void windUpRecord(String taskPatrolId) {
PatrolTaskExecRecord execRecord = taskExecClient.selectPatrolTaskExecRecordByTaskPatrolId(taskPatrolId);
final int total = execRecord.getTotalNumber();
@ -728,7 +711,6 @@ public class JobMainTask {
resetRecordCounter();
resetRedisCurrentCode();
redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME);
calcExecCostTime(execRecord.getOldTaskPatrolId());
}
} else { // 该record下的点没有全部执行成功
//设置本record的执行状态为终止
@ -750,7 +732,6 @@ public class JobMainTask {
if (execRecordCounter == redisRecCnt) {
resetRecordCounter();
resetRedisCurrentCode();
calcExecCostTime(execRecord.getOldTaskPatrolId());
}
}
}
@ -882,7 +863,7 @@ public class JobMainTask {
redisService.setCacheObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME, immediatelyExecTaskTime);
log.info(Color.CYAN + "[JOB IMMEDIATE] TASK_CURRENT_CODE: {}, value: {}" + Color.END, RedisConst.TASK_CURRENT_CODE, RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime);
redisService.setCacheObject(RedisConst.TASK_CURRENT_CODE, RedisConst.TASK_CODE + patrolTask.getTaskCode() + StringUtils.AT + immediatelyExecTaskTime);
taskStartInitialize();
resetRecordCounter();
log.info(Color.CYAN + "[JOB IMMEDIATE] TASK REC CNT: {}" + Color.END, cameraPatrolTasks.size());
setRedisRecordCount(cameraPatrolTasks.size());
for (PatrolTask task : cameraPatrolTasks) {
@ -948,10 +929,6 @@ public class JobMainTask {
}
}
private void setRedisRecordCount(final int size) {
redisService.setCacheObject(RedisConst.TASK_RECORD_CNT, size);
}
private void assembleVideoTask(List<PatrolTask> patrolTaskList, List<PatrolTask> cameraPatrolTasks) {
if (patrolTaskList != null) {
for (PatrolTask task : patrolTaskList) {


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

@ -285,20 +285,9 @@ public class PatrolTaskExecController extends BaseController {
updateTaskExecRecord(TaskStatus.RUNNING.getCode(), execRecords);
} else if (TaskStatus.HALTED.getCode().equals(state)) {
updateTaskExecRecord(TaskStatus.HALTED.getCode(), execRecords);
String redisImmediatelyExecTaskTime = redisService.getCacheObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME);
if (StringUtils.isNotEmpty(redisImmediatelyExecTaskTime)) {
redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME);
}
String redisTaskPatrolState = redisService.getCacheObject(RedisConst.TASK_PATROL_STATE);
if (redisTaskPatrolState != null) {
redisService.deleteObject(RedisConst.TASK_PATROL_STATE);
}
String redisTaskPatrolId = redisService.getCacheObject(RedisConst.TASK_PATROL_ID);
if (!StringUtils.isEmpty(redisTaskPatrolId)) {
redisService.deleteObject(RedisConst.TASK_PATROL_ID);
}
redisService.deleteObject(RedisConst.IMMEDIATELY_EXEC_TASK_TIME);
redisService.deleteObject(RedisConst.TASK_PATROL_STATE);
redisService.deleteObject(RedisConst.TASK_PATROL_ID);
String key = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE);
if (key != null) {


+ 11
- 25
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -514,15 +514,8 @@ public class PatrolTaskStatusController extends BaseController {
//立即执行任务
@GetMapping({"/controlChange"})
public AjaxResult controlChange(PatrolTask patrolTask) {
String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE);
if (!StringUtils.isEmpty(taskCode)) {
log.info("[TASK] CURRENT EXEC TASK: {}", taskCode);
return AjaxResult.error(501, "THERE TASK IS RUNNING!");
} else {
PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId());
issueToRobot(patrol);//type=41 立即执行任务
return toAjax(1);
}
PatrolTask patrol = patrolTaskService.selectPatrolTaskByTaskId(patrolTask.getTaskId());
return issueToRobot(patrol);//type=41 立即执行任务
}
public void sendTaskToVideo(final PatrolTask patrolTask) {
@ -565,7 +558,7 @@ public class PatrolTaskStatusController extends BaseController {
}
public void issueToRobot(PatrolTask patrolTask) {
public AjaxResult issueToRobot(PatrolTask patrolTask) {
String receiveCode = "";
String sendCode = "";
BasedataEqpBookMoMain basedataEqpBookMoMain = new BasedataEqpBookMoMain();
@ -594,24 +587,17 @@ public class PatrolTaskStatusController extends BaseController {
String str = JSONObject.toJSONString(sendTask);
this.feignTaskClient.sendCommand(str);
} else {
sendTaskToVideo(patrolTask);
String taskCode = redisService.getCacheObject(RedisConst.TASK_CURRENT_CODE);
if (!StringUtils.isEmpty(taskCode)) {
log.info("[TASK] CURRENT EXEC TASK: {}", taskCode);
return AjaxResult.error(501, "THERE TASK IS RUNNING!");
} else {
sendTaskToVideo(patrolTask);
}
}
//
// SendTask sendTaskcontrol = new SendTask();
// sendTaskcontrol.setReceiveCode(receiveCode);
// sendTaskcontrol.setSendCode(sendCode);
// sendTaskcontrol.setCode(devNo);
// sendTaskcontrol.setType("1");
// sendTaskcontrol.setCommand("5");
// List<PatrolSendTask> sendTaskArrayList = new ArrayList<>();
// PatrolSendTask patrolSendTask = new PatrolSendTask();
// patrolSendTask.setValue("1");
// sendTaskArrayList.add(patrolSendTask);
// sendTaskcontrol.setItems(sendTaskArrayList);
// String jsonString = JSONObject.toJSONString(sendTaskcontrol);
// this.feignTaskClient.sendCommand(jsonString);
}
}
return toAjax(1);
}
@GetMapping({"/taskStatusChange"})


Loading…
Cancel
Save