diff --git a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java index 2a836203..ccc3e741 100644 --- a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java @@ -482,6 +482,13 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 对新建的任务,创建对应处置设备任务信息 for (DisposeTask v : disposeTaskManager.getUnExpiredTasks()) { + //数据库数据太多,存在数据库一次性读取的信息和当前最新信息不一致(改动数据库)的情况,再次从数据库获取最新信息 + DisposeTaskStatus taskStatus = disposeTaskManager.getDisposeTaskById(v.getId()).getCurrentStatus(); + if (taskStatus.equals(DisposeTaskStatus.TASK_FINISHED) || + taskStatus.equals(DisposeTaskStatus.TASK_CANCELED) || + taskStatus.equals(DisposeTaskStatus.TASK_EXPIRED)) { + continue; + } // 设置任务状态, 开始创建任务 disposeTaskManager.changeDisposeTaskStatus(v.getId(), DisposeTaskStatus.TASK_STARTING);