diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java index 0e28c7062..e8908454c 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/push/ClientPresenceManager.java @@ -221,18 +221,16 @@ public class ClientPresenceManager extends RedisClusterPubSubAdapter connection.sync().spop(connectedClientsKey))) != null) { + clearPresenceScript.execute(List.of(presenceKey), List.of(peerId)); + pruneClientMeter.mark(); + } + presenceCluster.useCluster(connection -> { - final RedisAdvancedClusterCommands commands = connection.sync(); - - String presenceKey; - - while ((presenceKey = commands.spop(connectedClientsKey)) != null) { - clearPresenceScript.execute(List.of(presenceKey), List.of(peerId)); - pruneClientMeter.mark(); - } - - commands.del(connectedClientsKey); - commands.srem(MANAGER_SET_KEY, peerId); + connection.sync().del(connectedClientsKey); + connection.sync().srem(MANAGER_SET_KEY, peerId); }); } }