|
|
|
@ -328,6 +328,9 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i |
|
|
|
Edge edge = edgeGrpcSession.getEdge(); |
|
|
|
TenantId tenantId = edge.getTenantId(); |
|
|
|
log.info("[{}][{}] edge [{}] connected successfully.", tenantId, edgeGrpcSession.getSessionId(), edgeId); |
|
|
|
if (sessions.containsKey(edgeId)) { |
|
|
|
destroySession(sessions.get(edgeId)); |
|
|
|
} |
|
|
|
sessions.put(edgeId, edgeGrpcSession); |
|
|
|
final Lock newEventLock = sessionNewEventsLocks.computeIfAbsent(edgeId, id -> new ReentrantLock()); |
|
|
|
newEventLock.lock(); |
|
|
|
@ -493,7 +496,7 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i |
|
|
|
} finally { |
|
|
|
newEventLock.unlock(); |
|
|
|
} |
|
|
|
toRemove.destroy(); |
|
|
|
destroySession(toRemove); |
|
|
|
TenantId tenantId = toRemove.getEdge().getTenantId(); |
|
|
|
save(tenantId, edgeId, ACTIVITY_STATE, false); |
|
|
|
long lastDisconnectTs = System.currentTimeMillis(); |
|
|
|
@ -506,6 +509,12 @@ public class EdgeGrpcService extends EdgeRpcServiceGrpc.EdgeRpcServiceImplBase i |
|
|
|
edgeIdServiceIdCache.evict(edgeId); |
|
|
|
} |
|
|
|
|
|
|
|
private void destroySession(EdgeGrpcSession session) { |
|
|
|
try (session) { |
|
|
|
session.destroy(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void save(TenantId tenantId, EdgeId edgeId, String key, long value) { |
|
|
|
log.debug("[{}][{}] Updating long edge telemetry [{}] [{}]", tenantId, edgeId, key, value); |
|
|
|
if (persistToTelemetry) { |
|
|
|
|