From d5e973283ca305eb704b0c991adc2f1eb97516fe Mon Sep 17 00:00:00 2001 From: Volodymyr Babak Date: Mon, 23 Dec 2024 20:46:07 +0200 Subject: [PATCH] EdgeGrpcSession - move check of empty high priority msgs into submethod --- .../server/service/edge/rpc/EdgeGrpcSession.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java index 7c37b0ac54..64c97d735d 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java @@ -292,9 +292,7 @@ public abstract class EdgeGrpcSession implements Closeable { protected void processEdgeEvents(EdgeEventFetcher fetcher, PageLink pageLink, SettableFuture> result) { try { - if (!highPriorityQueue.isEmpty()) { - processHighPriorityEvents(); - } + processHighPriorityEvents(); PageData pageData = fetcher.fetchEdgeEvents(edge.getTenantId(), edge, pageLink); if (isConnected() && !pageData.getData().isEmpty()) { log.trace("[{}][{}][{}] event(s) are going to be processed.", tenantId, sessionId, pageData.getData().size()); @@ -537,6 +535,9 @@ public abstract class EdgeGrpcSession implements Closeable { public void processHighPriorityEvents() { try { if (isConnected() && isSyncCompleted()) { + if (highPriorityQueue.isEmpty()) { + return; + } List highPriorityEvents = new ArrayList<>(); EdgeEvent event; while ((event = highPriorityQueue.poll()) != null) { @@ -606,8 +607,13 @@ public abstract class EdgeGrpcSession implements Closeable { } }, ctx.getGrpcCallbackExecutorService()); } else { - log.trace("[{}][{}] edge is not connected or sync is not completed. Skipping iteration", tenantId, sessionId); - result.set(null); + if (!isSyncCompleted()) { + log.trace("[{}][{}] edge sync is not completed yet. Skipping iteration", tenantId, sessionId); + result.set(Boolean.TRUE); + } else { + log.trace("[{}][{}] edge is not connected. Skipping iteration", tenantId, sessionId); + result.set(null); + } } return result; }