EdgeGrpcService - destroy if previous session exists
This commit is contained in:
parent
1eea7e71ec
commit
cce9b8f24d
@ -335,6 +335,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();
|
||||
@ -503,7 +506,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();
|
||||
@ -516,6 +519,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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user