X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FAdderRebalanceListener.java;fp=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FAdderRebalanceListener.java;h=7526929e1a7760fec682404c23a5bbbad3bb9cb8;hb=461c4014c22b0c0600f8d08578f5676f12d3b036;hp=284aff580df354d6c574c11c83baacb29a6673f7;hpb=c9d7601fc551069cd3a77da06a6333f22101a8a0;p=demos%2Fkafka%2Ftraining diff --git a/src/main/java/de/juplo/kafka/AdderRebalanceListener.java b/src/main/java/de/juplo/kafka/AdderRebalanceListener.java index 284aff5..7526929 100644 --- a/src/main/java/de/juplo/kafka/AdderRebalanceListener.java +++ b/src/main/java/de/juplo/kafka/AdderRebalanceListener.java @@ -24,6 +24,7 @@ public class AdderRebalanceListener implements PollIntervalAwareConsumerRebalanc private final Consumer consumer; private Instant lastCommit = Instant.EPOCH; + private boolean commitsEnabled = true; @Override public void onPartitionsAssigned(Collection partitions) @@ -59,7 +60,14 @@ public class AdderRebalanceListener implements PollIntervalAwareConsumerRebalanc id, partition, newOffset); - repository.save(new StateDocument(partition, handler.removePartition(partition), newOffset)); + if (commitsEnabled) + { + repository.save(new StateDocument(partition, handler.removePartition(partition), newOffset)); + } + else + { + log.info("Offset commits are disabled! Last commit: {}", lastCommit); + } }); } @@ -67,6 +75,12 @@ public class AdderRebalanceListener implements PollIntervalAwareConsumerRebalanc @Override public void beforeNextPoll() { + if (!commitsEnabled) + { + log.info("Offset commits are disabled! Last commit: {}", lastCommit); + return; + } + if (lastCommit.plus(commitInterval).isBefore(clock.instant())) { log.debug("Storing data and offsets, last commit: {}", lastCommit); @@ -78,4 +92,16 @@ public class AdderRebalanceListener implements PollIntervalAwareConsumerRebalanc lastCommit = clock.instant(); } } + + @Override + public void enableCommits() + { + commitsEnabled = true; + } + + @Override + public void disableCommits() + { + commitsEnabled = false; + } }