From 3185173805c1db80274aa6bbe23eb431fc57f122 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 15 Jun 2017 12:40:19 +0200 Subject: [PATCH] DATAREDIS-656 - Reduce default LettuceConnectionFactory shutdown timeout to 100ms. Reducing the default to 100 milliseconds is a good compromise to retain a quiet time in for parallel execution and optimize for default, single-threaded execution (such as test execution or regular application shutdown). The shutdown timeout can be adjusted to fit specific application needs. Previously, LettuceConnectionFactory used different defaults: 2 seconds if used LettuceClientConfiguration and 60 seconds without LettuceClientConfiguration. In any case, defaults delay shutdown and cause severe delays in total. The driver default of two seconds provides enough time to complete long-running tasks before the actual thread pool shutdown. Original Pull Request: #251 --- .../connection/lettuce/LettuceClientConfiguration.java | 6 +++--- .../redis/connection/lettuce/LettuceConnectionFactory.java | 2 +- .../lettuce/LettuceClientConfigurationUnitTests.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java index a91ea7d0c..b06075df9 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfiguration.java @@ -223,11 +223,11 @@ public interface LettuceClientConfiguration { private ClientResources clientResources; private ClientOptions clientOptions; private Duration timeout = Duration.ofSeconds(RedisURI.DEFAULT_TIMEOUT); - private Duration shutdownTimeout = Duration.ofSeconds(2); + private Duration shutdownTimeout = Duration.ofMillis(100); private DefaultLettuceClientConfigurationBuilder() {} - /*d + /* * (non-Javadoc) * @see org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration.LettuceClientConfigurationBuilder#useSsl() */ @@ -239,7 +239,7 @@ public interface LettuceClientConfiguration { } /* - *(non-Javadoc) + * (non-Javadoc) * @see org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration.LettuceSslClientConfigurationBuilder#disablePeerVerification() */ @Override diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java index 4e0e78300..6425fbb3e 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java @@ -851,7 +851,7 @@ public class LettuceConnectionFactory private boolean startTls; private ClientResources clientResources; private Duration timeout = Duration.ofSeconds(RedisURI.DEFAULT_TIMEOUT); - private Duration shutdownTimeout = Duration.ofSeconds(RedisURI.DEFAULT_TIMEOUT); + private Duration shutdownTimeout = Duration.ofMillis(100); /* (non-Javadoc) * @see org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration#isUseSsl() diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java index ebfb765f6..be6fc39b2 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceClientConfigurationUnitTests.java @@ -42,7 +42,7 @@ public class LettuceClientConfigurationUnitTests { assertThat(configuration.getClientOptions()).isEmpty(); assertThat(configuration.getClientResources()).isEmpty(); assertThat(configuration.getCommandTimeout()).isEqualTo(Duration.ofSeconds(60)); - assertThat(configuration.getShutdownTimeout()).isEqualTo(Duration.ofSeconds(2)); + assertThat(configuration.getShutdownTimeout()).isEqualTo(Duration.ofMillis(100)); } @Test // DATAREDIS-574