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