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 f9c0d3830e955ca88864d61e8bb74dc0974c1f26..fbfbd526c95153153ca9354e7b7c8aa913fa566e 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; + } + }