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--2025-01-signal-gradle~3 X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=216783fa9768ce48e8f2d2a33e358a12ea22946e;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 4e167ce0..3fcd05d1 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); } }