Commit 7e1466ffdeb5e2a8845568e56076aed1a9508fc9

Authored by Andrew Shvayka
1 parent 5a5211ac

Improvement to websocket logging and parallelizm

... ... @@ -51,9 +51,9 @@ public class TbWebSocketHandler extends TextWebSocketHandler implements Telemetr
51 51 @Override
52 52 public void handleTextMessage(WebSocketSession session, TextMessage message) {
53 53 try {
54   - log.info("[{}] Processing {}", session.getId(), message);
55 54 SessionMetaData sessionMd = internalSessionMap.get(session.getId());
56 55 if (sessionMd != null) {
  56 + log.info("[{}][{}] Processing {}", sessionMd.sessionRef.getSecurityCtx().getTenantId(), session.getId(), message);
57 57 webSocketService.handleWebSocketMsg(sessionMd.sessionRef, message.getPayload());
58 58 } else {
59 59 log.warn("[{}] Failed to find session", session.getId());
... ... @@ -74,7 +74,7 @@ public class TbWebSocketHandler extends TextWebSocketHandler implements Telemetr
74 74 internalSessionMap.put(internalSessionId, new SessionMetaData(session, sessionRef));
75 75 externalSessionMap.put(externalSessionId, internalSessionId);
76 76 processInWebSocketService(sessionRef, SessionEvent.onEstablished());
77   - log.info("[{}][{}] Session is started", externalSessionId, session.getId());
  77 + log.info("[{}][{}][{}] Session is opened", sessionRef.getSecurityCtx().getTenantId(), externalSessionId, session.getId());
78 78 } catch (InvalidParameterException e) {
79 79 log.warn("[[{}] Failed to start session", session.getId(), e);
80 80 session.close(CloseStatus.BAD_DATA.withReason(e.getMessage()));
... ...
... ... @@ -72,6 +72,7 @@ import java.util.concurrent.ConcurrentHashMap;
72 72 import java.util.concurrent.ConcurrentMap;
73 73 import java.util.concurrent.ExecutorService;
74 74 import java.util.concurrent.Executors;
  75 +import java.util.concurrent.LinkedBlockingQueue;
75 76 import java.util.concurrent.SynchronousQueue;
76 77 import java.util.concurrent.ThreadPoolExecutor;
77 78 import java.util.concurrent.TimeUnit;
... ... @@ -85,8 +86,8 @@ import java.util.stream.Collectors;
85 86 @Slf4j
86 87 public class DefaultTelemetryWebSocketService implements TelemetryWebSocketService {
87 88
88   - public static final int DEFAULT_LIMIT = 100;
89   - public static final Aggregation DEFAULT_AGGREGATION = Aggregation.NONE;
  89 + private static final int DEFAULT_LIMIT = 100;
  90 + private static final Aggregation DEFAULT_AGGREGATION = Aggregation.NONE;
90 91 private static final int UNKNOWN_SUBSCRIPTION_ID = 0;
91 92 private static final String PROCESSING_MSG = "[{}] Processing: {}";
92 93 private static final ObjectMapper jsonMapper = new ObjectMapper();
... ... @@ -115,7 +116,7 @@ public class DefaultTelemetryWebSocketService implements TelemetryWebSocketServi
115 116
116 117 @PostConstruct
117 118 public void initExecutor() {
118   - executor = new ThreadPoolExecutor(0, 50, 60L, TimeUnit.SECONDS, new SynchronousQueue<>());
  119 + executor = new ThreadPoolExecutor(0, 50, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
119 120 }
120 121
121 122 @PreDestroy
... ...