From a0d9d5ccd33aa09b4624fdfd2dd3269a9b82ba83 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期三, 13 十二月 2023 16:27:54 +0800 Subject: [PATCH] 增加海康sdk设置高精度ptz信息 --- ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/QueueManager.java | 132 +++++++++++++++++++++++--------------------- 1 files changed, 69 insertions(+), 63 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..9d53cc8 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 @@ -13,7 +13,7 @@ /** * @ClassName QueueManager - * @Description: 闃熷垪绠$悊 + * @Description: 闃熷垪绠$悊-----寮冪敤 * @Author 鍒樿嫃涔� * @Date 2023/6/29 21:09 * @Version 1.0 @@ -23,32 +23,32 @@ @Slf4j(topic = "guideQueue") public class QueueManager { - @Autowired - private QueueTaskExecutor taskExecutor; - private Map<String, TaskThread> threadMap = new ConcurrentHashMap<>(); + // @Autowired + // private QueueTaskExecutor taskExecutor;-----寮冪敤 + // private Map<String, TaskThread> threadMap = new ConcurrentHashMap<>(); - /*鍐呴儴闈欐�佺被*/ - private static class TaskThread { - private Thread thread; - private GuideTask currentTask; - - public TaskThread(Thread thread, GuideTask currentTask) { - this.thread = thread; - this.currentTask = currentTask; - } - - public Thread getThread() { - return thread; - } - - public GuideTask getCurrentTask() { - return currentTask; - } - - public void setCurrentTask(GuideTask task) { - this.currentTask = task; - } - } + ///*鍐呴儴闈欐�佺被*/ + //private static class TaskThread { + // private Thread thread; + // private GuideTask currentTask; + // + // public TaskThread(Thread thread, GuideTask currentTask) { + // this.thread = thread; + // this.currentTask = currentTask; + // } + // + // public Thread getThread() { + // return thread; + // } + // + // public GuideTask getCurrentTask() { + // return currentTask; + // } + // + // public void setCurrentTask(GuideTask task) { + // this.currentTask = task; + // } + //} /** * 寮曞浠诲姟鍏ラ槦 @@ -58,51 +58,57 @@ 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(); - } - //濡傛灉闃熷垪褰撳墠娌℃湁绾跨▼姝e湪杩愯锛屽垯鍚姩鏂扮嚎绋� - if (currentTaskThread == null || !currentTaskThread.getThread().isAlive()) { - Thread newThread = createThread(cameraId, guideTaskQueue); - threadMap.put(cameraId, new TaskThread(newThread, task)); - newThread.start(); - } + /*鑾峰彇璇ョ浉鏈虹殑褰撳墠鎵ц绾跨▼-----寮冪敤*/ + //TaskThread currentTaskThread = threadMap.get(cameraId); + ////濡傛灉闃熷垪褰撳墠绾跨▼姝e湪杩愯锛岃嫢鍏ラ槦浠诲姟浼樺厛绾уぇ浜庡綋鍓嶄换鍔′紭鍏堢骇锛屽垯缁堟褰撳墠绾跨▼ + //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湪杩愯锛屽垯鍚姩鏂扮嚎绋� + //else { + // 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(); - log.debug("鍙栧嚭闃熷垪鏁版嵁:"+task.getAlarmId()); - taskExecutor.processTask(task); - // 鏇存柊绾跨▼鐨勫綋鍓嶄换鍔� - TaskThread currentTaskThread = threadMap.get(queueName); - if (currentTaskThread != null) { - currentTaskThread.setCurrentTask(task); - } - } catch (InterruptedException e) { - log.info("涓柇褰撳墠绾跨▼"); - //绾跨▼涓柇锛岄��鍑哄惊鐜� - Thread.currentThread().interrupt(); - } - } - }, queueName); - } + //private Thread createThread(String queueName, PriorityBlockingQueue<GuideTask> queue) { + // + // return new Thread(() -> { + // while (!Thread.currentThread().isInterrupted()) { + // try { + // GuideTask task = queue.take(); + // log.debug("鍙栧嚭闃熷垪鏁版嵁:" + task.getAlarmId()); + // taskExecutor.processTask(task); + // // 鏇存柊绾跨▼鐨勫綋鍓嶄换鍔� + // TaskThread currentTaskThread = threadMap.get(queueName); + // if (currentTaskThread != null) { + // currentTaskThread.setCurrentTask(task); + // } + // } catch (InterruptedException e) { + // log.info("涓柇褰撳墠绾跨▼"); + // //绾跨▼涓柇锛岄��鍑哄惊鐜� + // Thread.currentThread().interrupt(); + // } + // } + // }, queueName); + //} } -- Gitblit v1.9.3