From ad01610d1e68672c42c19934e6751b9d3628e838 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Tue, 1 Sep 2020 16:59:57 -0400 Subject: [PATCH] Rely on the client presence manager to decide whether to send push notifications. --- .../textsecuregcm/WhisperServerService.java | 9 ++++----- .../textsecuregcm/push/WebsocketSender.java | 12 +++--------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index 2ed625e63..f1976ce31 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -281,10 +281,9 @@ public class WhisperServerService extends Application(1_000)).build(); - ExecutorService websocketExperimentExecutor = environment.lifecycle().executorService("websocketPresenceExperiment").maxThreads(8).workQueue(new ArrayBlockingQueue<>(1_000)).build(); + ScheduledExecutorService clientPresenceExecutor = environment.lifecycle().scheduledExecutorService("clientPresenceManager").threads(1).build(); + ScheduledExecutorService refreshFeatureFlagsExecutor = environment.lifecycle().scheduledExecutorService("featureFlags").threads(1).build(); + ExecutorService messageNotificationExecutor = environment.lifecycle().executorService("messageCacheNotifications").maxThreads(8).workQueue(new ArrayBlockingQueue<>(1_000)).build(); ClientPresenceManager clientPresenceManager = new ClientPresenceManager(messagesCacheCluster, clientPresenceExecutor); DirectoryManager directory = new DirectoryManager(directoryClient); @@ -304,7 +303,7 @@ public class WhisperServerService extends Application clientPresenceManager.isPresent(account.getUuid(), device.getId()), experimentExecutor); - - if (clientPresent) { + if (clientPresenceManager.isPresent(account.getUuid(), device.getId())) { if (channel == Type.APN) apnOnlineMeter.mark(); else if (channel == Type.GCM) gcmOnlineMeter.mark(); else websocketOnlineMeter.mark();