From: Kai Moritz Date: Fri, 1 Nov 2024 14:12:00 +0000 (+0100) Subject: Fix: `close()` muss noch vom `ExampleProducer` aufgerufen werden X-Git-Tag: producer/spring-producer--2024-12-signal~3 X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=e31448f65160822722c992f8ab53bf3eae229015;p=demos%2Fkafka%2Ftraining Fix: `close()` muss noch vom `ExampleProducer` aufgerufen werden * Der Aufruf von `close()` löst das Versenden wartender Nachrichten aus. * Wenn die Methode erst von Spring aufgerufen wird, werden ggf. noch Nachrichten konsumiert, nachdem der `ExampleProducer` bereits ausgegeben hat, wieviele Nachrichten er insgesamt verarbeitet hat. --- diff --git a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java index 3d775f08..5a9bd82f 100644 --- a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java +++ b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java @@ -33,7 +33,7 @@ public class ApplicationConfiguration () -> applicationContext.close()); } - @Bean + @Bean(destroyMethod = "") public KafkaProducer kafkaProducer(ApplicationProperties properties) { Properties props = new Properties(); diff --git a/src/main/java/de/juplo/kafka/ExampleProducer.java b/src/main/java/de/juplo/kafka/ExampleProducer.java index 2190c8d4..bc5cf897 100644 --- a/src/main/java/de/juplo/kafka/ExampleProducer.java +++ b/src/main/java/de/juplo/kafka/ExampleProducer.java @@ -72,6 +72,8 @@ public class ExampleProducer implements Runnable } finally { + log.info("{}: Closing the KafkaProducer", id); + producer.close(); log.info("{}: Produced {} messages in total, exiting!", id, produced); } }