X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fpersistence%2Fkafka%2FChatMessageChannel.java;h=7b19bb6b1f2584c6246e05a831aa0b68efedbf81;hb=5c338c58065988f7841c4ab9ee1b193e754da9b9;hp=69947a9d1da9113e4cc93a1c4b277f8bc34f51a7;hpb=2a47c081a50f8ebdda6db9955c3ddc69e5c601c2;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/ChatMessageChannel.java b/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/ChatMessageChannel.java index 69947a9d..7b19bb6b 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/ChatMessageChannel.java +++ b/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/ChatMessageChannel.java @@ -17,15 +17,13 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.time.*; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; +import java.util.concurrent.Callable; import java.util.stream.IntStream; @Slf4j -public class ChatMessageChannel implements Runnable, ConsumerRebalanceListener +public class ChatMessageChannel implements Callable>, ConsumerRebalanceListener { private final String topic; private final Producer producer; @@ -155,7 +153,7 @@ public class ChatMessageChannel implements Runnable, ConsumerRebalanceListener } @Override - public void run() + public Optional call() { consumer.subscribe(List.of(topic)); @@ -193,7 +191,15 @@ public class ChatMessageChannel implements Runnable, ConsumerRebalanceListener log.info("Received WakeupException, exiting!"); running = false; } + catch (Exception e) + { + log.error("Exiting abnormally!"); + return Optional.of(e); + } } + + log.info("Exiting normally"); + return Optional.empty(); } void loadMessages(ConsumerRecords records)