From 9ab77cae08198c4c3d9d8fe7f41b0910fb54762e Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期一, 17 七月 2023 09:10:26 +0800 Subject: [PATCH] 优化融云业务 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java | 36 ++++++++++++++++++++++++++++-------- 1 files changed, 28 insertions(+), 8 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java index 11c5aac..210c939 100644 --- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java +++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java @@ -1,9 +1,13 @@ package com.ruoyi.alarm.globalAlarm.domain; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Map; -import java.util.PriorityQueue; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.PriorityBlockingQueue; /** * @Description: 寮曞浼樺厛绾ч槦鍒� @@ -12,11 +16,12 @@ * @Date: 2023骞�06鏈�29鏃�11:18 * @Version: 1.0 **/ +@Slf4j(topic = "guideQueue") public class GuidePriorityQueue { /** * 鐩告満闃熷垪锛屾瘡涓浉鏈轰竴涓紭鍏堢骇闃熷垪 */ - public static Map<String, PriorityQueue<GuideTask>> cameraQueueMap = new HashMap<>(); + public static Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = new HashMap<>(); /** * 鍒涘缓涓�涓嚜瀹氫箟鐨勬瘮杈冨櫒锛屾牴鎹紭鍏堢骇灞炴�ц繘琛屾瘮杈� @@ -24,9 +29,24 @@ public static Comparator<GuideTask> getComparator() { Comparator<GuideTask> PriorityDescCom = Comparator.comparingInt(GuideTask::getPriority).reversed(); Comparator<GuideTask> NumDescCom = Comparator.comparingInt(GuideTask::getNum).reversed(); - Comparator<GuideTask> alarmTimeAscCom = Comparator.comparing(GuideTask::getAlarmTime); - Comparator<GuideTask> Comparator = PriorityDescCom.thenComparing(NumDescCom).thenComparing(alarmTimeAscCom); + Comparator<GuideTask> receiveTimeAscCom = Comparator.comparing(GuideTask::getReceiveTime); + Comparator<GuideTask> Comparator = PriorityDescCom.thenComparing(NumDescCom).thenComparing(receiveTimeAscCom); return Comparator; } -} + /** + * 娴嬭瘯浣跨敤锛氭墦鍗伴槦鍒� + */ + public static void printPriorityQueue() { + for (String cameraId : GuidePriorityQueue.cameraQueueMap.keySet()) { + PriorityBlockingQueue<GuideTask> priorityQueue = GuidePriorityQueue.cameraQueueMap.get(cameraId); + PriorityBlockingQueue<GuideTask> queue = new PriorityBlockingQueue<>(priorityQueue); + while (queue.size() > 0) { + GuideTask task = queue.poll(); + log.info("姝e湪鎺掗槦銆恈ameraId銆�" + task.getCameraId()+"銆恆larmId銆�" + task.getAlarmId() + "銆恟eceiveTime銆�" + task.getReceiveTime() + + "銆恆larmType銆�" + task.getAlarmType() + "銆恜riority銆�" + task.getPriority() + "銆恘um銆�" + task.getNum() + + "銆恈han銆�" + task.getChanNum() + "銆恟ecordSn銆�" + task.getRecordSn()); + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3