From e97ea78623424805e1c469d38642aa32c3ceb75e Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Sun, 13 Oct 2024 11:00:57 +0200 Subject: [PATCH] Server: connected event only if really connecting --- .../usatiuk/dhfs/objects/repository/PeerManager.java | 8 ++++---- .../DeferredInvalidationQueueService.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/PeerManager.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/PeerManager.java index 3ca145ff..29a53d88 100644 --- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/PeerManager.java +++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/PeerManager.java @@ -118,13 +118,13 @@ public class PeerManager { return null; }); - for (var l : _connectedListeners) { - l.apply(host); - } - if (wasReachable) return; Log.info("Connected to " + host); + + for (var l : _connectedListeners) { + l.apply(host); + } } public void handleConnectionError(UUID host) { diff --git a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/invalidation/DeferredInvalidationQueueService.java b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/invalidation/DeferredInvalidationQueueService.java index 672652e3..575f65dc 100644 --- a/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/invalidation/DeferredInvalidationQueueService.java +++ b/dhfs-parent/server/src/main/java/com/usatiuk/dhfs/objects/repository/invalidation/DeferredInvalidationQueueService.java @@ -5,6 +5,8 @@ import com.usatiuk.dhfs.objects.repository.PeerManager; import io.quarkus.logging.Log; import io.quarkus.runtime.ShutdownEvent; import io.quarkus.runtime.StartupEvent; +import io.quarkus.scheduler.Scheduled; +import io.smallrye.common.annotation.Blocking; import jakarta.annotation.Priority; import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.event.Observes; @@ -41,7 +43,6 @@ public class DeferredInvalidationQueueService { Log.warn("Reading invalidation queue from backup"); _persistentData = SerializationHelper.deserialize(Files.readAllBytes(Paths.get(dataRoot).resolve(dataFileName))); } - remoteHostManager.registerConnectEventListener(this::returnForHost); } @@ -63,6 +64,14 @@ public class DeferredInvalidationQueueService { } } + // FIXME: + @Scheduled(every = "15s", concurrentExecution = Scheduled.ConcurrentExecution.SKIP) + @Blocking + void periodicReturn() { + for (var reachable : remoteHostManager.getAvailableHosts()) + returnForHost(reachable); + } + void returnForHost(UUID host) { synchronized (this) { var col = _persistentData.getDeferredInvalidations().get(host);