From 163b5d69e8f77e4727d8cbd562f8e3049eea9a1f Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Tue, 11 Feb 2025 11:12:58 +0100 Subject: [PATCH] =?utf8?q?`CompletableFuture.whenComplete(...)`=20ist=20de?= =?utf8?q?utlich=20n=C3=A4her=20an=20dem=20Callback?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../java/de/juplo/kafka/ExampleProducer.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/juplo/kafka/ExampleProducer.java b/src/main/java/de/juplo/kafka/ExampleProducer.java index 864eed2a..143472dc 100644 --- a/src/main/java/de/juplo/kafka/ExampleProducer.java +++ b/src/main/java/de/juplo/kafka/ExampleProducer.java @@ -82,12 +82,12 @@ public class ExampleProducer implements Runnable { final long time = System.currentTimeMillis(); - CompletableFuture> completableFuture = kafkaTemplate.send(topic, key, value); - - completableFuture.thenAccept(result -> + kafkaTemplate.send(topic, key, value).whenComplete((result, e) -> + { + long now = System.currentTimeMillis(); + if (e == null) { // HANDLE SUCCESS - long now = System.currentTimeMillis(); RecordMetadata metadata = result.getRecordMetadata(); produced++; log.debug( @@ -100,12 +100,10 @@ public class ExampleProducer implements Runnable metadata.timestamp(), now - time ); - }); - - completableFuture.exceptionally(e -> + } + else { // HANDLE ERROR - long now = System.currentTimeMillis(); log.error( "{} - ERROR for message {}={}, latency={}ms: {}", id, @@ -114,8 +112,8 @@ public class ExampleProducer implements Runnable now - time, e.toString() ); - return null; - }); + } + }); long now = System.currentTimeMillis(); log.trace( -- 2.20.1