X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FEndlessConsumer.java;h=e67bf412a1bae6762c7270935079e47f57716a1f;hb=915674ec49ba38b3716cc4ef53272e963f139677;hp=e3a60b5b796fea7dbeb4c2434c3daeef63976f84;hpb=32a052b7c494009c59190857984ef3563f4f2b14;p=demos%2Fkafka%2Ftraining diff --git a/src/main/java/de/juplo/kafka/EndlessConsumer.java b/src/main/java/de/juplo/kafka/EndlessConsumer.java index e3a60b5..e67bf41 100644 --- a/src/main/java/de/juplo/kafka/EndlessConsumer.java +++ b/src/main/java/de/juplo/kafka/EndlessConsumer.java @@ -22,6 +22,7 @@ import java.util.concurrent.atomic.AtomicBoolean; public class EndlessConsumer implements Runnable { private final ExecutorService executor; + private final PartitionStatisticsRepository repository; private final String bootstrapServer; private final String groupId; private final String id; @@ -38,6 +39,7 @@ public class EndlessConsumer implements Runnable public EndlessConsumer( ExecutorService executor, + PartitionStatisticsRepository repository, String bootstrapServer, String groupId, String clientId, @@ -45,6 +47,7 @@ public class EndlessConsumer implements Runnable String autoOffsetReset) { this.executor = executor; + this.repository = repository; this.bootstrapServer = bootstrapServer; this.groupId = groupId; this.id = clientId; @@ -83,10 +86,11 @@ public class EndlessConsumer implements Runnable log.info( "{} - Seen {} messages for partition={}|key={}", id, - counter.getCounter(), + counter.getResult(), removed.getPartition(), counter.getKey()); } + repository.save(new StatisticsDocument(removed)); }); } @@ -96,7 +100,12 @@ public class EndlessConsumer implements Runnable partitions.forEach(tp -> { log.info("{} - adding partition: {}", id, tp); - seen.put(tp, new PartitionStatistics(tp)); + seen.put( + tp, + repository + .findById(tp.toString()) + .map(PartitionStatistics::new) + .orElse(new PartitionStatistics(tp))); }); } });