diff --git a/src/main/java/com/ycwl/basic/mapper/TaskMapper.java b/src/main/java/com/ycwl/basic/mapper/TaskMapper.java index 92a2c6e..f44b313 100644 --- a/src/main/java/com/ycwl/basic/mapper/TaskMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/TaskMapper.java @@ -55,4 +55,6 @@ public interface TaskMapper { List listEntity(TaskReqQuery taskReqQuery); List selectNotRunningByScenicList(String scenicOnly); + + List selectAllFailed(); } diff --git a/src/main/java/com/ycwl/basic/watchdog/TaskWatchDog.java b/src/main/java/com/ycwl/basic/watchdog/TaskWatchDog.java index c2ef2f4..ae0c087 100644 --- a/src/main/java/com/ycwl/basic/watchdog/TaskWatchDog.java +++ b/src/main/java/com/ycwl/basic/watchdog/TaskWatchDog.java @@ -25,8 +25,17 @@ public class TaskWatchDog { String title = "任务堆积警告!"; StringBuilder content = new StringBuilder(); if (allNotRunningTaskList.size() > 10) { - content.append("当前任务队列中存在超过10个未运行任务,请及时处理!"); + content.append("当前任务队列中存在超过10个未运行任务,请及时处理!未运行任务数量:").append(allNotRunningTaskList.size()); } + + List allFailedTaskList = taskMapper.selectAllFailed(); + if (allFailedTaskList.size() > 5) { + if (content.length() > 0) { + content.append("\n"); + } + content.append("当前存在超过5个失败任务(status=3),请及时检查和处理!失败任务数量:").append(allFailedTaskList.size()); + } + List allRunningTaskList = taskMapper.selectAllRunning(); for (TaskEntity taskEntity : allRunningTaskList) { if (taskEntity.getStartTime() == null) { @@ -34,6 +43,9 @@ public class TaskWatchDog { } // startTime已经过去3分钟了 if (System.currentTimeMillis() - taskEntity.getStartTime().getTime() > 1000 * 60 * 3) { + if (content.length() > 0) { + content.append("\n"); + } content.append("当前【").append(taskEntity.getWorkerId()).append("】渲染机的【").append(taskEntity.getId()).append("】任务已超过3分钟未完成!"); } } diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml index 3402425..dbfa2ee 100644 --- a/src/main/resources/mapper/TaskMapper.xml +++ b/src/main/resources/mapper/TaskMapper.xml @@ -147,4 +147,9 @@ where status = 0 and worker_id is null and FIND_IN_SET(scenic_id, #{scenicId}) limit 1 +