From a6c3f3b165d3e38e5cdb61028d4bf51551d8f08e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de> Date: Thu, 3 Mar 2022 17:40:36 +0100 Subject: [PATCH] Set connection timeout and fix async bug --- .../benchmarks/loadgenerator/HttpRecordSender.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java index f9c0d3830..fbfbd526c 100644 --- a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java +++ b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java @@ -7,6 +7,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpResponse.BodyHandler; import java.net.http.HttpResponse.BodyHandlers; +import java.time.Duration; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -23,6 +24,8 @@ public class HttpRecordSender<T extends SpecificRecord> implements RecordSender< private static final int HTTP_OK = 200; + private static final Duration CONNECTION_TIMEOUT = Duration.ofSeconds(1); + private static final Logger LOGGER = LoggerFactory.getLogger(HttpRecordSender.class); private final Gson gson = new Gson(); @@ -63,6 +66,7 @@ public class HttpRecordSender<T extends SpecificRecord> implements RecordSender< final String json = this.gson.toJson(message); final HttpRequest request = HttpRequest.newBuilder() .uri(this.uri) + .timeout(CONNECTION_TIMEOUT) .POST(HttpRequest.BodyPublishers.ofString(json)) .build(); final BodyHandler<Void> bodyHandler = BodyHandlers.discarding(); @@ -81,7 +85,7 @@ public class HttpRecordSender<T extends SpecificRecord> implements RecordSender< response.statusCode()); } }); - if (this.async) { + if (this.isSync()) { try { result.get(); } catch (InterruptedException | ExecutionException e) { @@ -90,4 +94,8 @@ public class HttpRecordSender<T extends SpecificRecord> implements RecordSender< } } + private boolean isSync() { + return !this.async; + } + } -- GitLab