X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FSimpleConsumer.java;h=82d67946fd7af8c0f67f2483ed409d4e753c68b4;hb=0a23b208086aa3617f75d48e4e1b286cfdf9e64d;hp=3b0202f5e7ebd8b51f965949fba3dc2de809273b;hpb=fbd2fe7121eea8ce0c25d53dcb80b2565ccc8598;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 3b0202f..82d6794 100644 --- a/src/main/java/de/juplo/kafka/SimpleConsumer.java +++ b/src/main/java/de/juplo/kafka/SimpleConsumer.java @@ -9,21 +9,23 @@ import org.apache.kafka.common.errors.WakeupException; import java.time.Duration; import java.util.Arrays; +import java.util.concurrent.Callable; @Slf4j @RequiredArgsConstructor -public class SimpleConsumer implements Runnable +public class SimpleConsumer implements Callable { private final String id; private final String topic; private final Consumer consumer; + private final MessageHandler messageHandler; private long consumed = 0; @Override - public void run() + public Integer call() { try { @@ -50,11 +52,12 @@ public class SimpleConsumer implements Runnable catch(WakeupException e) { log.info("{} - Consumer was signaled to finish its work", id); + return 0; } catch(Exception e) { - log.error("{} - Unexpected error: {}, unsubscribing!", id, e.toString()); - consumer.unsubscribe(); + log.error("{} - Unexpected error: {}!", id, e.toString()); + return 1; } finally { @@ -73,5 +76,6 @@ public class SimpleConsumer implements Runnable { consumed++; log.info("{} - {}: {}/{} - {}={}", id, offset, topic, partition, key, value); + messageHandler.handle(key, value); } }