Un-manage FaultTolerantRedisCluster so it shuts down at JVM shutdown instead of Jetty shutdown.
This commit is contained in:
parent
7cb24dd96d
commit
7bf8650d59
|
@ -382,7 +382,6 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
environment.lifecycle().manage(messagesCache);
|
environment.lifecycle().manage(messagesCache);
|
||||||
environment.lifecycle().manage(accountDatabaseCrawler);
|
environment.lifecycle().manage(accountDatabaseCrawler);
|
||||||
environment.lifecycle().manage(remoteConfigsManager);
|
environment.lifecycle().manage(remoteConfigsManager);
|
||||||
environment.lifecycle().manage(cacheCluster);
|
|
||||||
environment.lifecycle().manage(clusterMessagePersister);
|
environment.lifecycle().manage(clusterMessagePersister);
|
||||||
|
|
||||||
AWSCredentials credentials = new BasicAWSCredentials(config.getCdnConfiguration().getAccessKey(), config.getCdnConfiguration().getAccessSecret());
|
AWSCredentials credentials = new BasicAWSCredentials(config.getCdnConfiguration().getAccessKey(), config.getCdnConfiguration().getAccessSecret());
|
||||||
|
|
|
@ -2,7 +2,6 @@ package org.whispersystems.textsecuregcm.redis;
|
||||||
|
|
||||||
import com.codahale.metrics.SharedMetricRegistries;
|
import com.codahale.metrics.SharedMetricRegistries;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import io.dropwizard.lifecycle.Managed;
|
|
||||||
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
|
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
|
||||||
import io.lettuce.core.RedisURI;
|
import io.lettuce.core.RedisURI;
|
||||||
import io.lettuce.core.cluster.RedisClusterClient;
|
import io.lettuce.core.cluster.RedisClusterClient;
|
||||||
|
@ -23,7 +22,7 @@ import java.util.stream.Collectors;
|
||||||
* read and write operations because the leader in a Redis cluster shard may fail while its read-only replicas can still
|
* read and write operations because the leader in a Redis cluster shard may fail while its read-only replicas can still
|
||||||
* serve traffic.
|
* serve traffic.
|
||||||
*/
|
*/
|
||||||
public class FaultTolerantRedisCluster implements Managed {
|
public class FaultTolerantRedisCluster {
|
||||||
|
|
||||||
private final RedisClusterClient clusterClient;
|
private final RedisClusterClient clusterClient;
|
||||||
|
|
||||||
|
@ -56,6 +55,10 @@ public class FaultTolerantRedisCluster implements Managed {
|
||||||
FaultTolerantRedisCluster.class);
|
FaultTolerantRedisCluster.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void shutdown() {
|
||||||
|
clusterClient.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
public void useReadCluster(final Consumer<StatefulRedisClusterConnection<String, String>> consumer) {
|
public void useReadCluster(final Consumer<StatefulRedisClusterConnection<String, String>> consumer) {
|
||||||
this.readCircuitBreaker.executeRunnable(() -> consumer.accept(stringClusterConnection));
|
this.readCircuitBreaker.executeRunnable(() -> consumer.accept(stringClusterConnection));
|
||||||
}
|
}
|
||||||
|
@ -87,13 +90,4 @@ public class FaultTolerantRedisCluster implements Managed {
|
||||||
public <T> T withBinaryWriteCluster(final Function<StatefulRedisClusterConnection<byte[], byte[]>, T> consumer) {
|
public <T> T withBinaryWriteCluster(final Function<StatefulRedisClusterConnection<byte[], byte[]>, T> consumer) {
|
||||||
return this.writeCircuitBreaker.executeSupplier(() -> consumer.apply(binaryClusterConnection));
|
return this.writeCircuitBreaker.executeSupplier(() -> consumer.apply(binaryClusterConnection));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void start() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void stop() {
|
|
||||||
clusterClient.shutdown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ public abstract class AbstractRedisClusterTest {
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
redisCluster.stop();
|
redisCluster.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
|
|
Loading…
Reference in New Issue