Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
1659d460
Commit
1659d460
authored
May 02, 2019
by
Gemini Kim
Committed by
Andy Wilkinson
May 09, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Enable minIdle by allowing timeBetweenEviction runs to be configured
See gh-16703
parent
509d338d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
5 deletions
+40
-5
JedisConnectionConfiguration.java
...utoconfigure/data/redis/JedisConnectionConfiguration.java
+4
-0
LettuceConnectionConfiguration.java
...oconfigure/data/redis/LettuceConnectionConfiguration.java
+4
-0
RedisProperties.java
...mework/boot/autoconfigure/data/redis/RedisProperties.java
+19
-0
RedisAutoConfigurationJedisTests.java
...onfigure/data/redis/RedisAutoConfigurationJedisTests.java
+10
-5
RedisAutoConfigurationTests.java
...autoconfigure/data/redis/RedisAutoConfigurationTests.java
+3
-0
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/JedisConnectionConfiguration.java
View file @
1659d460
...
@@ -114,6 +114,10 @@ class JedisConnectionConfiguration extends RedisConnectionConfiguration {
...
@@ -114,6 +114,10 @@ class JedisConnectionConfiguration extends RedisConnectionConfiguration {
config
.
setMaxTotal
(
pool
.
getMaxActive
());
config
.
setMaxTotal
(
pool
.
getMaxActive
());
config
.
setMaxIdle
(
pool
.
getMaxIdle
());
config
.
setMaxIdle
(
pool
.
getMaxIdle
());
config
.
setMinIdle
(
pool
.
getMinIdle
());
config
.
setMinIdle
(
pool
.
getMinIdle
());
if
(
pool
.
getTimeBetweenEvictionRuns
()
!=
null
)
{
config
.
setTimeBetweenEvictionRunsMillis
(
pool
.
getTimeBetweenEvictionRuns
().
toMillis
());
}
if
(
pool
.
getMaxWait
()
!=
null
)
{
if
(
pool
.
getMaxWait
()
!=
null
)
{
config
.
setMaxWaitMillis
(
pool
.
getMaxWait
().
toMillis
());
config
.
setMaxWaitMillis
(
pool
.
getMaxWait
().
toMillis
());
}
}
...
...
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.java
View file @
1659d460
...
@@ -155,6 +155,10 @@ class LettuceConnectionConfiguration extends RedisConnectionConfiguration {
...
@@ -155,6 +155,10 @@ class LettuceConnectionConfiguration extends RedisConnectionConfiguration {
config
.
setMaxTotal
(
properties
.
getMaxActive
());
config
.
setMaxTotal
(
properties
.
getMaxActive
());
config
.
setMaxIdle
(
properties
.
getMaxIdle
());
config
.
setMaxIdle
(
properties
.
getMaxIdle
());
config
.
setMinIdle
(
properties
.
getMinIdle
());
config
.
setMinIdle
(
properties
.
getMinIdle
());
if
(
properties
.
getTimeBetweenEvictionRuns
()
!=
null
)
{
config
.
setTimeBetweenEvictionRunsMillis
(
properties
.
getTimeBetweenEvictionRuns
().
toMillis
());
}
if
(
properties
.
getMaxWait
()
!=
null
)
{
if
(
properties
.
getMaxWait
()
!=
null
)
{
config
.
setMaxWaitMillis
(
properties
.
getMaxWait
().
toMillis
());
config
.
setMaxWaitMillis
(
properties
.
getMaxWait
().
toMillis
());
}
}
...
...
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisProperties.java
View file @
1659d460
...
@@ -172,6 +172,9 @@ public class RedisProperties {
...
@@ -172,6 +172,9 @@ public class RedisProperties {
/**
/**
* Target for the minimum number of idle connections to maintain in the pool. This
* Target for the minimum number of idle connections to maintain in the pool. This
* setting only has an effect if it is positive.
* setting only has an effect if it is positive.
*
* This setting only has an effect if it is positive and `timeBetweenEvictionRuns`
* is greater than zero.
*/
*/
private
int
minIdle
=
0
;
private
int
minIdle
=
0
;
...
@@ -188,6 +191,14 @@ public class RedisProperties {
...
@@ -188,6 +191,14 @@ public class RedisProperties {
*/
*/
private
Duration
maxWait
=
Duration
.
ofMillis
(-
1
);
private
Duration
maxWait
=
Duration
.
ofMillis
(-
1
);
/**
* Time to sleep between runs of the idle object evictor thread.
*
* When positive, the idle object evictor thread starts. When non-positive, no
* idle object evictor thread runs.
*/
private
Duration
timeBetweenEvictionRuns
;
public
int
getMaxIdle
()
{
public
int
getMaxIdle
()
{
return
this
.
maxIdle
;
return
this
.
maxIdle
;
}
}
...
@@ -220,6 +231,14 @@ public class RedisProperties {
...
@@ -220,6 +231,14 @@ public class RedisProperties {
this
.
maxWait
=
maxWait
;
this
.
maxWait
=
maxWait
;
}
}
public
Duration
getTimeBetweenEvictionRuns
()
{
return
this
.
timeBetweenEvictionRuns
;
}
public
void
setTimeBetweenEvictionRuns
(
Duration
timeBetweenEvictionRuns
)
{
this
.
timeBetweenEvictionRuns
=
timeBetweenEvictionRuns
;
}
}
}
/**
/**
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationJedisTests.java
View file @
1659d460
...
@@ -134,11 +134,14 @@ public class RedisAutoConfigurationJedisTests {
...
@@ -134,11 +134,14 @@ public class RedisAutoConfigurationJedisTests {
@Test
@Test
public
void
testRedisConfigurationWithPool
()
{
public
void
testRedisConfigurationWithPool
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.redis.host:foo"
,
this
.
contextRunner
"spring.redis.jedis.pool.min-idle:1"
,
.
withPropertyValues
(
"spring.redis.host:foo"
,
"spring.redis.jedis.pool.max-idle:4"
,
"spring.redis.jedis.pool.min-idle:1"
,
"spring.redis.jedis.pool.max-active:16"
,
"spring.redis.jedis.pool.max-idle:4"
,
"spring.redis.jedis.pool.max-wait:2000"
).
run
((
context
)
->
{
"spring.redis.jedis.pool.max-active:16"
,
"spring.redis.jedis.pool.max-wait:2000"
,
"spring.redis.jedis.pool.time-between-eviction-runs:30000"
)
.
run
((
context
)
->
{
JedisConnectionFactory
cf
=
context
JedisConnectionFactory
cf
=
context
.
getBean
(
JedisConnectionFactory
.
class
);
.
getBean
(
JedisConnectionFactory
.
class
);
assertThat
(
cf
.
getHostName
()).
isEqualTo
(
"foo"
);
assertThat
(
cf
.
getHostName
()).
isEqualTo
(
"foo"
);
...
@@ -146,6 +149,8 @@ public class RedisAutoConfigurationJedisTests {
...
@@ -146,6 +149,8 @@ public class RedisAutoConfigurationJedisTests {
assertThat
(
cf
.
getPoolConfig
().
getMaxIdle
()).
isEqualTo
(
4
);
assertThat
(
cf
.
getPoolConfig
().
getMaxIdle
()).
isEqualTo
(
4
);
assertThat
(
cf
.
getPoolConfig
().
getMaxTotal
()).
isEqualTo
(
16
);
assertThat
(
cf
.
getPoolConfig
().
getMaxTotal
()).
isEqualTo
(
16
);
assertThat
(
cf
.
getPoolConfig
().
getMaxWaitMillis
()).
isEqualTo
(
2000
);
assertThat
(
cf
.
getPoolConfig
().
getMaxWaitMillis
()).
isEqualTo
(
2000
);
assertThat
(
cf
.
getPoolConfig
().
getTimeBetweenEvictionRunsMillis
())
.
isEqualTo
(
30000
);
});
});
}
}
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationTests.java
View file @
1659d460
...
@@ -155,6 +155,7 @@ public class RedisAutoConfigurationTests {
...
@@ -155,6 +155,7 @@ public class RedisAutoConfigurationTests {
"spring.redis.lettuce.pool.max-idle:4"
,
"spring.redis.lettuce.pool.max-idle:4"
,
"spring.redis.lettuce.pool.max-active:16"
,
"spring.redis.lettuce.pool.max-active:16"
,
"spring.redis.lettuce.pool.max-wait:2000"
,
"spring.redis.lettuce.pool.max-wait:2000"
,
"spring.redis.lettuce.pool.time-between-eviction-runs:30000"
,
"spring.redis.lettuce.shutdown-timeout:1000"
).
run
((
context
)
->
{
"spring.redis.lettuce.shutdown-timeout:1000"
).
run
((
context
)
->
{
LettuceConnectionFactory
cf
=
context
LettuceConnectionFactory
cf
=
context
.
getBean
(
LettuceConnectionFactory
.
class
);
.
getBean
(
LettuceConnectionFactory
.
class
);
...
@@ -165,6 +166,8 @@ public class RedisAutoConfigurationTests {
...
@@ -165,6 +166,8 @@ public class RedisAutoConfigurationTests {
assertThat
(
poolConfig
.
getMaxIdle
()).
isEqualTo
(
4
);
assertThat
(
poolConfig
.
getMaxIdle
()).
isEqualTo
(
4
);
assertThat
(
poolConfig
.
getMaxTotal
()).
isEqualTo
(
16
);
assertThat
(
poolConfig
.
getMaxTotal
()).
isEqualTo
(
16
);
assertThat
(
poolConfig
.
getMaxWaitMillis
()).
isEqualTo
(
2000
);
assertThat
(
poolConfig
.
getMaxWaitMillis
()).
isEqualTo
(
2000
);
assertThat
(
poolConfig
.
getTimeBetweenEvictionRunsMillis
())
.
isEqualTo
(
30000
);
assertThat
(
cf
.
getShutdownTimeout
()).
isEqualTo
(
1000
);
assertThat
(
cf
.
getShutdownTimeout
()).
isEqualTo
(
1000
);
});
});
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment