From a38cb5bb3898f8996321df8f8d537ea18f4af71f Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 30 六月 2023 10:19:11 +0800
Subject: [PATCH] 优化

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
index 0703126..f9b3861 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueManager.java
@@ -13,7 +13,7 @@
 
 /**
  * @ClassName QueueManager
- * @Description:
+ * @Description: 闃熷垪绠$悊
  * @Author 鍒樿嫃涔�
  * @Date 2023/6/29 21:09
  * @Version 1.0
@@ -26,6 +26,7 @@
     private QueueTaskExecutor taskExecutor;
     private Map<String, TaskThread> threadMap = new ConcurrentHashMap<>();
 
+    /*鍐呴儴闈欐�佺被*/
     private static class TaskThread {
         private Thread thread;
         private GuideTask currentTask;
@@ -48,36 +49,49 @@
         }
     }
 
-    public void addTaskToQueue(String queueName, GuideTask task) {
-        PriorityBlockingQueue<GuideTask> guideTaskQueue = GuidePriorityQueue.cameraQueueMap.get(queueName);
+    /**
+     * 寮曞浠诲姟鍏ラ槦
+     * 鍒樿嫃涔�
+     * 2023/6/30 8:57
+     */
+    public void addTaskToQueue(String cameraId, GuideTask task) {
+        /*閫氳繃鐩告満ID鑾峰彇寮曞闃熷垪锛屽苟灏嗗紩瀵间换鍔″姞鍏ラ槦鍒�*/
+        PriorityBlockingQueue<GuideTask> guideTaskQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId);
         guideTaskQueue.add(task);
-        TaskThread currentTaskThread = threadMap.get(queueName);
+        /*鑾峰彇璇ョ浉鏈虹殑褰撳墠鎵ц绾跨▼*/
+        TaskThread currentTaskThread = threadMap.get(cameraId);
+        //濡傛灉闃熷垪褰撳墠绾跨▼姝e湪杩愯锛岃嫢鍏ラ槦浠诲姟浼樺厛绾уぇ浜庡綋鍓嶄换鍔′紭鍏堢骇锛屽垯缁堟褰撳墠绾跨▼
         if (currentTaskThread != null && task.getPriority() > currentTaskThread.getCurrentTask().getPriority()) {
             currentTaskThread.getThread().interrupt();
         }
-
-        // Start a new thread if no thread is currently running for the queue
+        //濡傛灉闃熷垪褰撳墠娌℃湁绾跨▼姝e湪杩愯锛屽垯鍚姩鏂扮嚎绋�
         if (currentTaskThread == null || !currentTaskThread.getThread().isAlive()) {
-            Thread newThread = createThread(queueName, guideTaskQueue);
-            threadMap.put(queueName, new TaskThread(newThread, task));
+            Thread newThread = createThread(cameraId, guideTaskQueue);
+            threadMap.put(cameraId, new TaskThread(newThread, task));
             newThread.start();
         }
     }
 
+    /**
+     * 鍒涘缓绾跨▼
+     * 鍒樿嫃涔�
+     * 2023/6/30 9:04
+     */
     private Thread createThread(String queueName, PriorityBlockingQueue<GuideTask> queue) {
+
         return new Thread(() -> {
             while (!Thread.currentThread().isInterrupted()) {
                 try {
                     GuideTask task = queue.take();
                     taskExecutor.processTask(task);
                     GuidePriorityQueue.printPriorityQueue();
-                    // Update the current task for the thread
+                    // 鏇存柊绾跨▼鐨勫綋鍓嶄换鍔�
                     TaskThread currentTaskThread = threadMap.get(queueName);
                     if (currentTaskThread != null) {
                         currentTaskThread.setCurrentTask(task);
                     }
                 } catch (InterruptedException e) {
-                    // Thread interrupted, exit the loop
+                    //绾跨▼涓柇锛岄��鍑哄惊鐜�
                     Thread.currentThread().interrupt();
                 }
             }

--
Gitblit v1.9.3