From 2988d2670cf03ef1ab074b0c6cd54301570c8ba4 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 24 八月 2023 12:01:26 +0800 Subject: [PATCH] 修复引导过程中修改相机导致引导队列中止出队的问题 增加一键派警描述字段 --- ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueManager.java | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueManager.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueManager.java index 21c8772..0497e66 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueManager.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueManager.java @@ -58,21 +58,27 @@ public void addTaskToQueue(String cameraId, GuideTask task) { /*閫氳繃鐩告満ID鑾峰彇寮曞闃熷垪锛屽苟灏嗗紩瀵间换鍔″姞鍏ラ槦鍒�*/ PriorityBlockingQueue<GuideTask> guideTaskQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId); - if(StringUtils.isNull(guideTaskQueue)) - { + if (StringUtils.isNull(guideTaskQueue)) { log.info("鐩告満鏈櫥褰�,娌℃湁闃熷垪,鏃犳硶鍏ラ槦寮曞"); return; } - log.debug("鏂颁换鍔″叆闃�:"+task.getAlarmId()); + log.debug("鏂颁换鍔″叆闃�:" + task.getAlarmId()); guideTaskQueue.add(task); /*鑾峰彇璇ョ浉鏈虹殑褰撳墠鎵ц绾跨▼*/ TaskThread currentTaskThread = threadMap.get(cameraId); //濡傛灉闃熷垪褰撳墠绾跨▼姝e湪杩愯锛岃嫢鍏ラ槦浠诲姟浼樺厛绾уぇ浜庡綋鍓嶄换鍔′紭鍏堢骇锛屽垯缁堟褰撳墠绾跨▼ - if (currentTaskThread != null && task.getPriority() > currentTaskThread.getCurrentTask().getPriority()) { - currentTaskThread.getThread().interrupt(); + if (currentTaskThread != null){ + if (task.getPriority() > currentTaskThread.getCurrentTask().getPriority()) { + currentTaskThread.getThread().interrupt(); + } + if (!currentTaskThread.getThread().isAlive()) { + Thread newThread = createThread(cameraId, guideTaskQueue); + threadMap.put(cameraId, new TaskThread(newThread, task)); + newThread.start(); + } } //濡傛灉闃熷垪褰撳墠娌℃湁绾跨▼姝e湪杩愯锛屽垯鍚姩鏂扮嚎绋� - if (currentTaskThread == null || !currentTaskThread.getThread().isAlive()) { + else { Thread newThread = createThread(cameraId, guideTaskQueue); threadMap.put(cameraId, new TaskThread(newThread, task)); newThread.start(); @@ -90,7 +96,7 @@ while (!Thread.currentThread().isInterrupted()) { try { GuideTask task = queue.take(); - log.debug("鍙栧嚭闃熷垪鏁版嵁:"+task.getAlarmId()); + log.debug("鍙栧嚭闃熷垪鏁版嵁:" + task.getAlarmId()); taskExecutor.processTask(task); // 鏇存柊绾跨▼鐨勫綋鍓嶄换鍔� TaskThread currentTaskThread = threadMap.get(queueName); -- Gitblit v1.9.3