From 527f4fd86eafb17dea8b9589b269da531299a6e5 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期五, 02 二月 2024 15:12:08 +0800 Subject: [PATCH] 三一车辆追踪线程加入sessionId修改提交 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 39 ++++++++++++++++++--------------------- 1 files changed, 18 insertions(+), 21 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java index 70c35e3..fced250 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java @@ -934,15 +934,22 @@ @Override public Results chaseCarByCarId(String usersId, String carId, String cycle) { + String sessionId = ""; + for(String key : ONLINE_USER_SESSIONS.keySet()){ + if(key.startsWith(usersId + "_")){ + sessionId = key; + } + } + if(sessionId.equals("")){//娌℃湁session灏辫繑鍥炲け璐� + return Results.error("杩借釜澶辫触"); + } try { - /*Map<String,Map<String,Object>> map = new HashMap(); - map.put(carId,new HashMap()); - PositionContainer.getUserPositionMap().put(usersId,map);*/ if (cycle.equals("0")) { if (userCarTimerMap.get(usersId) != null) { userCarTimerMap.get(usersId).cancel(); userCarTimerMap.remove(usersId); PositionContainer.getUserPositionMap().remove(usersId); + System.out.println("鍋滄杩借釜"); } return Results.succeed("鍋滄杩借釜"); } else { @@ -954,7 +961,7 @@ map.put(carId, new HashMap()); PositionContainer.getUserPositionMap().put(usersId, map); Date date = new Date(); - Timer carPositionTimer = new Timer();//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃� + Timer carPositionTimer = new Timer(sessionId);//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃� TimerTask carPositionTask = new TimerTask() { @Override public void run() { @@ -963,18 +970,13 @@ if (position.size() != 0) { Map<String, Map<String, Object>> data = new HashMap(); data.put("31000", position); - //WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(usersId), JSON.toJSONString(data)); - String sessionId = ""; - for(String key : ONLINE_USER_SESSIONS.keySet()){ - if(key.startsWith(usersId + "_")){ - sessionId = key; - } - } - if(sessionId.equals("")){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮 + String sessionId = Thread.currentThread().getName(); + if(ONLINE_USER_SESSIONS.get(sessionId) == null){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮 if (userCarTimerMap.get(usersId) != null) { userCarTimerMap.get(usersId).cancel(); userCarTimerMap.remove(usersId); PositionContainer.getUserPositionMap().remove(usersId); + System.out.println("鐢ㄦ埛绂荤嚎锛屽仠姝㈣拷韪�"); } } WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sessionId), JSON.toJSONString(data)); @@ -990,7 +992,7 @@ map.put(carId, new HashMap()); PositionContainer.getUserPositionMap().put(usersId, map); Date date = new Date(); - Timer carPositionTimer = new Timer();//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃� + Timer carPositionTimer = new Timer(sessionId);//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃� TimerTask carPositionTask = new TimerTask() { @Override public void run() { @@ -999,18 +1001,13 @@ if (position.size() != 0) { Map<String, Map<String, Object>> data = new HashMap(); data.put("31000", position); - //WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(usersId), JSON.toJSONString(data)); - String sessionId = ""; - for(String key : ONLINE_USER_SESSIONS.keySet()){ - if(key.startsWith(usersId + "_")){ - sessionId = key; - } - } - if(sessionId.equals("")){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮 + String sessionId = Thread.currentThread().getName(); + if(ONLINE_USER_SESSIONS.get(sessionId) == null){//鐢ㄦ埛绂荤嚎閲婃斁璧勬簮 if (userCarTimerMap.get(usersId) != null) { userCarTimerMap.get(usersId).cancel(); userCarTimerMap.remove(usersId); PositionContainer.getUserPositionMap().remove(usersId); + System.out.println("鐢ㄦ埛绂荤嚎锛屽仠姝㈣拷韪�"); } } WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sessionId), JSON.toJSONString(data)); -- Gitblit v1.9.3