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-11-13--si~3 X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=86e9cb9939ed99ed48acebdee06dc6c84a67b09c;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 3d775f0..5a9bd82 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 2190c8d..bc5cf89 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); } }