DATAREDIS-1127 - Handling ping failures for getSentinelConnection method.
Original Pull Request: #524
This commit is contained in:
committed by
Christoph Strobl
parent
7c0d4f142a
commit
9afccaffcd
@@ -76,6 +76,7 @@ import org.springframework.util.StringUtils;
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
* @author Fu Jian
|
||||
* @author Ajith Kumar
|
||||
* @see JedisClientConfiguration
|
||||
* @see Jedis
|
||||
*/
|
||||
@@ -844,10 +845,14 @@ public class JedisConnectionFactory implements InitializingBean, DisposableBean,
|
||||
|
||||
Jedis jedis = new Jedis(node.getHost(), node.getPort(), getConnectTimeout(), getReadTimeout());
|
||||
|
||||
if (jedis.ping().equalsIgnoreCase("pong")) {
|
||||
try {
|
||||
if (jedis.ping().equalsIgnoreCase("pong")) {
|
||||
|
||||
potentiallySetClientName(jedis);
|
||||
return jedis;
|
||||
potentiallySetClientName(jedis);
|
||||
return jedis;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
log.warn(String.format("Ping failed for sentinel host:%s", node.getHost()), ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.springframework.data.redis.test.util.RedisSentinelRule;
|
||||
* @author Christoph Strobl
|
||||
* @author Fu Jian
|
||||
* @author Mark Paluch
|
||||
* @author Ajith Kumar
|
||||
*/
|
||||
public class JedisConnectionFactorySentinelIntegrationTests {
|
||||
|
||||
@@ -82,4 +83,14 @@ public class JedisConnectionFactorySentinelIntegrationTests {
|
||||
|
||||
assertThat(factory.getConnection().getClientName(), equalTo("clientName"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotFailOnFirstSentinelDown() {
|
||||
|
||||
final RedisSentinelConfiguration multiSentinelConfig = new RedisSentinelConfiguration()
|
||||
.master("mymaster").sentinel("any.unavailable.host",26379).sentinel("127.0.0.1", 26379);
|
||||
|
||||
factory = new JedisConnectionFactory(multiSentinelConfig);
|
||||
assertThat(factory.getSentinelConnection().isOpen(), is(true));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user