X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FSimpleConsumer.java;fp=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FSimpleConsumer.java;h=4459a7932755fd5968aead19ec33e313fe97fa22;hb=1e858c1835d47259583cf3cce18921c550682e2b;hp=64d5176a3fff1428540a182b548d6a34b995e218;hpb=ae796c9e9e4ec5c86853aa9b100d0cfe4deeda3c;p=demos%2Fkafka%2Ftraining diff --git a/src/main/java/de/juplo/kafka/SimpleConsumer.java b/src/main/java/de/juplo/kafka/SimpleConsumer.java index 64d5176..4459a79 100644 --- a/src/main/java/de/juplo/kafka/SimpleConsumer.java +++ b/src/main/java/de/juplo/kafka/SimpleConsumer.java @@ -6,7 +6,7 @@ import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.common.errors.WakeupException; -import org.springframework.core.task.TaskExecutor; +import org.springframework.scheduling.annotation.Async; import java.time.Duration; import java.util.Arrays; @@ -14,28 +14,24 @@ import java.util.Arrays; @Slf4j @RequiredArgsConstructor -public class SimpleConsumer implements Runnable +public class SimpleConsumer { - private final TaskExecutor taskExecutor; private final String id; private final String topic; private final Consumer consumer; + private volatile boolean running = false; private long consumed = 0; - public void start() - { - taskExecutor.execute(this); - } - - @Override + @Async public void run() { try { log.info("{} - Subscribing to topic test", id); consumer.subscribe(Arrays.asList(topic)); + running = true; while (true) { @@ -69,9 +65,15 @@ public class SimpleConsumer implements Runnable } finally { + running = false; log.info("{} - Closing the KafkaConsumer", id); consumer.close(); log.info("{}: Consumed {} messages in total, exiting!", id, consumed); } } + + public boolean isRunning() + { + return running; + } }