diff options
author | David Arthur <mumrah@gmail.com> | 2013-03-30 00:28:00 -0400 |
---|---|---|
committer | David Arthur <mumrah@gmail.com> | 2013-04-02 20:19:30 -0400 |
commit | b6d98c07b418b16061ae92392947d5dd6958a708 (patch) | |
tree | e777fcf3019ef0ddc6c278ef733c487f5b0532c3 /kafka/producer.py | |
parent | 3499e2f6ead76e1c2db6ac754358bd57f9a15268 (diff) | |
download | kafka-python-b6d98c07b418b16061ae92392947d5dd6958a708.tar.gz |
Big code re-org
Diffstat (limited to 'kafka/producer.py')
-rw-r--r-- | kafka/producer.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kafka/producer.py b/kafka/producer.py new file mode 100644 index 0000000..823d923 --- /dev/null +++ b/kafka/producer.py @@ -0,0 +1,22 @@ +from itertools import cycle +import logging + +from kafka.common import ProduceRequest +from kafka.protocol import create_message + +log = logging.getLogger("kafka") + +class SimpleProducer(object): + """ + A simple, round-robbin producer. Each message goes to exactly one partition + """ + def __init__(self, client, topic): + self.client = client + self.topic = topic + self.client.load_metadata_for_topics(topic) + self.next_partition = cycle(self.client.topic_partitions[topic]) + + def send_message(self, msg): + req = ProduceRequest(self.topic, self.next_partition.next(), + messages=[create_message(msg)]) + resp = self.client.send_produce_request([req]).next() |