Clear each cluster node individually.

This commit is contained in:
Jon Chambers
2020-07-21 17:53:21 -04:00
committed by Jon Chambers
parent db9b7ca447
commit 0fbf31ec98
2 changed files with 61 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
package org.whispersystems.textsecuregcm.workers;
import com.google.common.annotations.VisibleForTesting;
import io.dropwizard.cli.ConfiguredCommand;
import io.dropwizard.setup.Bootstrap;
import net.sourceforge.argparse4j.inf.Namespace;
@@ -14,7 +15,11 @@ public class ClearCacheClusterCommand extends ConfiguredCommand<WhisperServerCon
@Override
protected void run(final Bootstrap<WhisperServerConfiguration> bootstrap, final Namespace namespace, final WhisperServerConfiguration config) {
final FaultTolerantRedisCluster cacheCluster = new FaultTolerantRedisCluster("main_cache_cluster", config.getCacheClusterConfiguration().getUrls(), config.getCacheClusterConfiguration().getTimeout(), config.getCacheClusterConfiguration().getCircuitBreakerConfiguration());
cacheCluster.useWriteCluster(connection -> connection.sync().flushallAsync());
clearCache(new FaultTolerantRedisCluster("main_cache_cluster", config.getCacheClusterConfiguration().getUrls(), config.getCacheClusterConfiguration().getTimeout(), config.getCacheClusterConfiguration().getCircuitBreakerConfiguration()));
}
@VisibleForTesting
static void clearCache(final FaultTolerantRedisCluster cacheCluster) {
cacheCluster.useWriteCluster(connection -> connection.sync().masters().commands().flushallAsync());
}
}