diff options
Diffstat (limited to 'kafka/partitioner/base.py')
-rw-r--r-- | kafka/partitioner/base.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/kafka/partitioner/base.py b/kafka/partitioner/base.py new file mode 100644 index 0000000..c62b7ed --- /dev/null +++ b/kafka/partitioner/base.py @@ -0,0 +1,23 @@ + +class Partitioner(object): + """ + Base class for a partitioner + """ + def __init__(self, partitions): + """ + Initialize the partitioner + + partitions - A list of available partitions (during startup) + """ + self.partitions = partitions + + def partition(self, key, partitions): + """ + Takes a string key and num_partitions as argument and returns + a partition to be used for the message + + partitions - The list of partitions is passed in every call. This + may look like an overhead, but it will be useful + (in future) when we handle cases like rebalancing + """ + raise NotImplementedError('partition function has to be implemented') |