diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/scheduler/InspectionCronScheduler.java b/ruoyi-video/src/main/java/com/ruoyi/video/scheduler/InspectionCronScheduler.java index 5eec258..5a3d7be 100644 --- a/ruoyi-video/src/main/java/com/ruoyi/video/scheduler/InspectionCronScheduler.java +++ b/ruoyi-video/src/main/java/com/ruoyi/video/scheduler/InspectionCronScheduler.java @@ -24,9 +24,10 @@ import java.util.concurrent.TimeUnit; /** * 内部巡检任务调度器(不依赖若依Quartz) - * - 周期性轮询 v_inspection_task 中启用(status='0')的任务 + * - 周期性轮询 v_inspection_task 中任务,按状态 0=启用、1=停用 控制是否触发 * - 使用 Spring CronExpression 计算下一次执行 * - 到点调用 InspectionTaskService.executeInspectionTask(taskId) + * - 不修改任务的状态字段(状态仅由外部手动启停控制) */ @Slf4j @Component @@ -119,21 +120,6 @@ public class InspectionCronScheduler { } catch (Exception e) { log.debug("更新nextExecuteTime失败: taskId={}, err={}", taskId, e.getMessage()); } - - // 若发现状态为“2”(服务执行完成后置状态),将其规范化回“0”以维持启用 - if ("2".equals(status)) { - try { - InspectionTask patch = new InspectionTask(); - patch.setTaskId(taskId); - patch.setStatus("0"); - patch.setUpdateTime(DateUtils.getNowDate()); - inspectionTaskMapper.updateInspectionTask(patch); - task.setStatus("0"); - } catch (Exception e) { - log.debug("规范化任务状态失败: taskId={}, err={}", taskId, e.getMessage()); - } - } - // 到点触发判定:如果 next <= now + 10s 窗口内,就触发一次 long nowMs = System.currentTimeMillis(); long nextMs = nextDate.getTime(); @@ -164,19 +150,6 @@ public class InspectionCronScheduler { } catch (Exception e) { log.error("执行巡检任务触发失败: taskId={}, err={}", taskId, e.getMessage(), e); } - - // 延迟规范化状态为启用(服务执行期间可能将其改为1或2) - try { - poller.schedule(() -> { - try { - InspectionTask patch2 = new InspectionTask(); - patch2.setTaskId(taskId); - patch2.setStatus("0"); - patch2.setUpdateTime(DateUtils.getNowDate()); - inspectionTaskMapper.updateInspectionTask(patch2); - } catch (Exception ignored) {} - }, 3, TimeUnit.SECONDS); - } catch (Exception ignore) {} } } } catch (Exception e) { diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java b/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java index 2de7b31..4fc25ed 100644 --- a/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java +++ b/ruoyi-video/src/main/java/com/ruoyi/video/service/impl/InspectionTaskServiceImpl.java @@ -64,7 +64,7 @@ public class InspectionTaskServiceImpl implements InspectionTaskService { private IVMinioObjectService vMinioObjectService; // 运行状态缓存(避免重复执行) - private final Map runningTasks = new ConcurrentHashMap<>(); +// private final Map runningTasks = new ConcurrentHashMap<>(); private ModelManager modelManager; // 延迟初始化,避免启动时的依赖问题 @@ -117,14 +117,14 @@ public class InspectionTaskServiceImpl implements InspectionTaskService { if (task == null) { return false; } - + // 启用任务,使用新版实体类的方法 task.setStatus("0"); // 0表示启用 task.setUpdateTime(DateUtils.getNowDate()); inspectionTaskMapper.updateInspectionTask(task); - - runningTasks.put(taskId, true); - + +// runningTasks.put(taskId, true); + // 这里应该集成到Quartz定时任务中 log.info("启动巡检任务: {}", taskId); return true; @@ -142,7 +142,7 @@ public class InspectionTaskServiceImpl implements InspectionTaskService { task.setUpdateTime(DateUtils.getNowDate()); inspectionTaskMapper.updateInspectionTask(task); - runningTasks.remove(taskId); +// runningTasks.remove(taskId); log.info("停止巡检任务: {}", taskId); return true; @@ -170,8 +170,8 @@ public class InspectionTaskServiceImpl implements InspectionTaskService { try { // 更新任务状态为执行中 - task.setStatus("1"); - inspectionTaskMapper.updateInspectionTask(task); +// task.setStatus("1"); +// inspectionTaskMapper.updateInspectionTask(task); // 获取设备信息 Device device = deviceService.selectDeviceByDeviceId(task.getDeviceId()); @@ -191,16 +191,16 @@ public class InspectionTaskServiceImpl implements InspectionTaskService { inspectionTaskRecordMapper.updateInspectionTaskRecord(record); // 更新任务状态为已完成 - task.setStatus("2"); - inspectionTaskMapper.updateInspectionTask(task); +// task.setStatus("0"); +// inspectionTaskMapper.updateInspectionTask(task); } catch (Exception e) { log.error("巡检任务执行失败: taskId={}", taskId, e); updateRecordFailed(record, e.getMessage()); // 更新任务状态为已完成(虽然失败) - task.setStatus("2"); - inspectionTaskMapper.updateInspectionTask(task); +// task.setStatus("0"); +// inspectionTaskMapper.updateInspectionTask(task); } } @@ -208,7 +208,7 @@ public class InspectionTaskServiceImpl implements InspectionTaskService { * 更新记录为失败状态 */ private void updateRecordFailed(InspectionTaskRecord record, String errorMsg) { - record.setStatus(1); // 失败 + record.setStatus(2); // 失败 record.setResult("执行失败: " + errorMsg); inspectionTaskRecordMapper.updateInspectionTaskRecord(record); }