diff options
author | Dana Powers <dana.powers@gmail.com> | 2016-01-31 23:46:31 -0800 |
---|---|---|
committer | Dana Powers <dana.powers@gmail.com> | 2016-01-31 23:46:31 -0800 |
commit | 843b34732d3cc5593c9e03c5ea062d705086eb8c (patch) | |
tree | 6a34b0491f5fe69753c9adb2fdde5661365af13f /kafka/consumer/group.py | |
parent | 33b9ff2e339db34684ba0189e1f4e5865bc4ed9f (diff) | |
download | kafka-python-843b34732d3cc5593c9e03c5ea062d705086eb8c.tar.gz |
Add KafkaConsumer.highwater(partition) to get highwater offsets from FetchResponses
Diffstat (limited to 'kafka/consumer/group.py')
-rw-r--r-- | kafka/consumer/group.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kafka/consumer/group.py b/kafka/consumer/group.py index f2991b2..009c163 100644 --- a/kafka/consumer/group.py +++ b/kafka/consumer/group.py @@ -463,6 +463,28 @@ class KafkaConsumer(six.Iterator): offset = self._subscription.assignment[partition].position return offset + def highwater(self, partition): + """Last known highwater offset for a partition + + A highwater offset is the offset that will be assigned to the next + message that is produced. It may be useful for calculating lag, by + comparing with the reported position. Note that both position and + highwater refer to the *next* offset -- i.e., highwater offset is + one greater than the newest availabel message. + + Highwater offsets are returned in FetchResponse messages, so will + not be available if not FetchRequests have been sent for this partition + yet. + + Arguments: + partition (TopicPartition): partition to check + + Returns: + int or None: offset if available + """ + assert self._subscription.is_assigned(partition), 'Partition is not assigned' + return self._subscription.assignment[partition].highwater + def pause(self, *partitions): """Suspend fetching from the requested partitions. |