- int partition = topicPartition.partition();
- long unseenOffset = 0; // offsets[partition];
-
- log.info(
- "Loading messages from partition {}: start-offset={} -> current-offset={}",
- partition,
- unseenOffset,
- currentOffset);
-
- // TODO: reuse! Nicht immer alles neu laden, sondern erst ab offsets[partition]!
- consumer.seek(topicPartition, unseenOffset);
- chatHomeLoaders[partition] = new ChatHomeLoader(
- producer,
- currentOffset,
- zoneId);
- });
+ consumer.endOffsets(partitions).forEach((topicPartition, currentOffset) ->
+ {
+ if (!topicPartition.topic().equals(topic))
+ {
+ log.warn("Ignoring partition from unwanted topic: {}", topicPartition);
+ return;
+ }
+
+ int partition = topicPartition.partition();
+ long unseenOffset = 0; // offsets[partition];
+
+ log.info(
+ "Loading messages from partition {}: start-offset={} -> current-offset={}",
+ partition,
+ unseenOffset,
+ currentOffset);
+
+ // TODO: reuse! Nicht immer alles neu laden, sondern erst ab offsets[partition]!
+ consumer.seek(topicPartition, unseenOffset);
+ });
+
+ consumer.resume(partitions);
+ }
+ finally
+ {
+ lock.writeLock().unlock();
+ }