diff options
author | Mahendra M <mahendra.m@gmail.com> | 2013-06-13 14:40:09 +0530 |
---|---|---|
committer | Mahendra M <mahendra.m@gmail.com> | 2013-06-13 14:40:09 +0530 |
commit | d3cf18a9fb961f8c640bd2ff0384b9a66ae179bb (patch) | |
tree | ff11ce0a1bf8770ae60cc8fe1026d097c84e8d26 /kafka/partitioner.py | |
parent | ac76520bf880fb91e76d34a8e67cbe7e96017c7d (diff) | |
download | kafka-python-d3cf18a9fb961f8c640bd2ff0384b9a66ae179bb.tar.gz |
Fix bugs and testing
* Ensure that round-robin partitioner works fine
* _load_metadata_for_topics() would cause duplicate and stale entries in
self.topic_partitions. Fix this
Diffstat (limited to 'kafka/partitioner.py')
-rw-r--r-- | kafka/partitioner.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/kafka/partitioner.py b/kafka/partitioner.py index 0f49b07..84db4d5 100644 --- a/kafka/partitioner.py +++ b/kafka/partitioner.py @@ -31,14 +31,18 @@ class RoundRobinPartitioner(Partitioner): in a round robin fashion """ def __init__(self, partitions): - self.partitions = cycle(partitions) + self._set_partitions(partitions) + + def _set_partitions(self, partitions): + self.partitions = partitions + self.iterpart = cycle(partitions) def partition(self, key, partitions): # Refresh the partition list if necessary if self.partitions != partitions: - self.partitions = cycle(partitions) + self._set_partitions(partitions) - return self.partitions.next() + return self.iterpart.next() class HashedPartitioner(Partitioner): |