From 315202d9df444d797d73ff23e4c774f6945d5486 Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Fri, 15 Dec 2023 09:43:49 +0200 Subject: [PATCH] Fixes after manual testing --- .../common/transport/TransportService.java | 3 -- .../activity/AbstractActivityManager.java | 33 ++++--------------- .../transport/activity/ActivityManager.java | 2 -- .../service/DefaultTransportService.java | 9 +---- 4 files changed, 8 insertions(+), 39 deletions(-) diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java index 067527efec..f51b399a5b 100644 --- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/TransportService.java @@ -63,7 +63,6 @@ import org.thingsboard.server.gen.transport.TransportProtos.ValidateDeviceX509Ce import org.thingsboard.server.gen.transport.TransportProtos.ValidateOrCreateDeviceX509CertRequestMsg; import java.util.List; -import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicInteger; @@ -162,7 +161,5 @@ public interface TransportService { boolean hasSession(SessionInfoProto sessionInfo); - SessionMetaData getSession(UUID sessionId); - void createGaugeStats(String openConnections, AtomicInteger connectionsCounter); } diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/AbstractActivityManager.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/AbstractActivityManager.java index 1c5da90bbd..b7d5f5dac5 100644 --- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/AbstractActivityManager.java +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/AbstractActivityManager.java @@ -31,16 +31,15 @@ package org.thingsboard.server.common.transport.activity; import lombok.extern.slf4j.Slf4j; -import org.thingsboard.common.util.ThingsBoardThreadFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.transport.activity.strategy.ActivityStrategy; +import org.thingsboard.server.queue.scheduler.SchedulerComponent; import java.util.Map; import java.util.Random; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -48,9 +47,11 @@ import java.util.concurrent.atomic.AtomicBoolean; public abstract class AbstractActivityManager implements ActivityManager { private final ConcurrentMap> states = new ConcurrentHashMap<>(); + + @Autowired + protected SchedulerComponent scheduler; + protected String name; - private long reportingPeriodMillis; - private ScheduledExecutorService scheduler; private boolean initialized; @Override @@ -62,8 +63,6 @@ public abstract class AbstractActivityManager implements Activity reportingPeriodMillis = 3000; log.error("[{}] Negative or zero reporting period millisecond was provided. Going to use reporting period value of 3 seconds.", this.name); } - this.reportingPeriodMillis = reportingPeriodMillis; - scheduler = Executors.newSingleThreadScheduledExecutor(ThingsBoardThreadFactory.forName(this.name)); // TODO: use scheduler component scheduler.scheduleAtFixedRate(this::onReportingPeriodEnd, new Random().nextInt((int) reportingPeriodMillis), reportingPeriodMillis, TimeUnit.MILLISECONDS); initialized = true; log.info("Activity manager with name [{}] is initialized.", this.name); @@ -172,7 +171,7 @@ public abstract class AbstractActivityManager implements Activity if (shouldReport && lastReportedTime < lastRecordedTime) { log.debug("[{}] Going to report last activity event for key: [{}].", name, key); - reportActivity(key, metadata, currentState.getLastRecordedTime(), new ActivityReportCallback<>() { + reportActivity(key, metadata, lastRecordedTime, new ActivityReportCallback<>() { @Override public void onSuccess(Key key, long reportedTime) { updateLastReportedTime(key, reportedTime); @@ -194,22 +193,4 @@ public abstract class AbstractActivityManager implements Activity }); } - @Override - public synchronized void destroy() { - if (initialized) { - initialized = false; - if (scheduler != null) { - scheduler.shutdown(); - try { - if (scheduler.awaitTermination(10L, TimeUnit.SECONDS)) { - scheduler.shutdownNow(); - } - } catch (InterruptedException e) { - scheduler.shutdownNow(); - Thread.currentThread().interrupt(); - } - } - } - } - } diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/ActivityManager.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/ActivityManager.java index 5e659bef1e..f19b9e30ca 100644 --- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/ActivityManager.java +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/activity/ActivityManager.java @@ -36,6 +36,4 @@ public interface ActivityManager { void onActivity(Key key); - void destroy(); - } diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java index 5646e35cec..4b70638e37 100644 --- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java +++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java @@ -186,7 +186,6 @@ public class DefaultTransportService extends AbstractActivityManager state) { - return (System.currentTimeMillis() - sessionInactivityTimeout) < state.getLastReportedTime(); + return (System.currentTimeMillis() - sessionInactivityTimeout) > state.getLastRecordedTime(); } @Override @@ -1351,11 +1349,6 @@ public class DefaultTransportService extends AbstractActivityManager