From 8a0c29135af73ac03d6d33cef059bf5880f40017 Mon Sep 17 00:00:00 2001 From: yma Date: Tue, 15 Oct 2024 10:41:09 +0800 Subject: [PATCH] Update Cassandra reconnect policy and default delay value --- .../repository/data/cassandra/CassandraClient.java | 3 +++ .../data/cassandra/CassandraConfiguration.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraClient.java b/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraClient.java index be638d8..3944ed9 100644 --- a/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraClient.java +++ b/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraClient.java @@ -18,6 +18,7 @@ import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Session; import com.datastax.driver.core.SocketOptions; +import com.datastax.driver.core.policies.ConstantReconnectionPolicy; import io.quarkus.runtime.Startup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -75,6 +76,8 @@ public void init() socketOptions.setReadTimeoutMillis( config.getReadTimeoutMillis() ); Cluster.Builder builder = Cluster.builder() .withoutJMXReporting() + .withReconnectionPolicy( + new ConstantReconnectionPolicy( config.getConstantDelayMs() ) ) .withRetryPolicy( new ConfigurableRetryPolicy( config.getReadRetries(), config.getWriteRetries() ) ) .addContactPoint( host ) diff --git a/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraConfiguration.java b/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraConfiguration.java index 5ff68b0..543ae03 100644 --- a/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraConfiguration.java +++ b/src/main/java/org/commonjava/indy/service/repository/data/cassandra/CassandraConfiguration.java @@ -65,6 +65,10 @@ public class CassandraConfiguration @ConfigProperty( name = "cassandra.retries.write", defaultValue = "3" ) int writeRetries; + @Inject + @ConfigProperty( name = "cassandra.reconnect.delay", defaultValue = "60000" ) + long constantDelayMs; + @Inject @ConfigProperty( name = "cassandra.keyspace" ) Optional keyspace; @@ -167,6 +171,16 @@ public void setWriteRetries( int writeRetries ) this.writeRetries = writeRetries; } + public long getConstantDelayMs() + { + return constantDelayMs; + } + + public void setConstantDelayMs( long constantDelayMs ) + { + this.constantDelayMs = constantDelayMs; + } + public String getKeyspace() { return keyspace.orElse( "" );