From 70210b0eb0c58e1779fd89cbcf0909154d7d4936 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 01 七月 2023 11:45:18 +0800 Subject: [PATCH] 基本完成优先级排队报警逻辑 --- ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GuidePriorityQueue.java | 37 ++++++++++++++++++++++++++++--------- 1 files changed, 28 insertions(+), 9 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 937237d..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,23 +1,27 @@ package com.ruoyi.alarm.globalAlarm.domain; -import com.ruoyi.alarm.globalAlarm.service.impl.GuideTask; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Map; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.PriorityBlockingQueue; /** - * @Description: + * @Description: 寮曞浼樺厛绾ч槦鍒� * @ClassName: PriorityQueue * @Author: 鍒樿嫃涔� * @Date: 2023骞�06鏈�29鏃�11:18 * @Version: 1.0 **/ +@Slf4j(topic = "guideQueue") public class GuidePriorityQueue { /** * 鐩告満闃熷垪锛屾瘡涓浉鏈轰竴涓紭鍏堢骇闃熷垪 */ - public static Map<String, java.util.PriorityQueue<GuideTask>> cameraQueueMap = new HashMap<>(); + public static Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = new HashMap<>(); /** * 鍒涘缓涓�涓嚜瀹氫箟鐨勬瘮杈冨櫒锛屾牴鎹紭鍏堢骇灞炴�ц繘琛屾瘮杈� @@ -25,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