summaryrefslogtreecommitdiffstats
path: root/vespa-feed-client
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-10-27 16:57:35 +0200
committerjonmv <venstad@gmail.com>2023-10-27 16:57:35 +0200
commitc79578f4331f2b8433b3ede5841bdf910164d564 (patch)
treebc896b42c771bf2c531cdb4774c8957aee69fe35 /vespa-feed-client
parentd93fbc20d3d39aeafa193fa3649399968af02cc2 (diff)
Allow specifying connection TTL for feed client
Diffstat (limited to 'vespa-feed-client')
-rw-r--r--vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java8
-rw-r--r--vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/JettyCluster.java5
2 files changed, 12 insertions, 1 deletions
diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java
index cacaeac30ae..6b4372fd11a 100644
--- a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java
+++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java
@@ -60,6 +60,7 @@ public class FeedClientBuilderImpl implements FeedClientBuilder {
boolean speedTest = false;
Compression compression = auto;
URI proxy;
+ Duration connectionTtl = Duration.ZERO;
public FeedClientBuilderImpl() {
@@ -95,6 +96,13 @@ public class FeedClientBuilderImpl implements FeedClientBuilder {
return this;
}
+ @Override
+ public FeedClientBuilder setConnectionTimeToLive(Duration ttl) {
+ if (ttl.isNegative()) throw new IllegalArgumentException("Connection TTL cannot be negative, but was " + ttl);
+ this.connectionTtl = ttl;
+ return this;
+ }
+
/** Sets {@link SSLContext} instance. */
@Override
public FeedClientBuilderImpl setSslContext(SSLContext context) {
diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/JettyCluster.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/JettyCluster.java
index 1edcc6d6cba..5454249d52e 100644
--- a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/JettyCluster.java
+++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/JettyCluster.java
@@ -159,7 +159,10 @@ class JettyCluster implements Cluster {
dest, Pool.StrategyType.RANDOM, connectionsPerEndpoint, false, dest, Integer.MAX_VALUE);
pool.preCreateConnections(connectionsPerEndpoint);
if (secureProxy) pool.setMaxDuration(Duration.ofMinutes(1).toMillis());
- else pool.setMaximizeConnections(true);
+ else {
+ pool.setMaximizeConnections(true);
+ pool.setMaxDuration(b.connectionTtl.toMillis());
+ }
return pool;
});
HttpClient httpClient = new HttpClient(transport);