summaryrefslogtreecommitdiff
path: root/kafka/producer.py
diff options
context:
space:
mode:
authorDavid Arthur <mumrah@gmail.com>2013-03-30 00:28:00 -0400
committerDavid Arthur <mumrah@gmail.com>2013-04-02 20:19:30 -0400
commitb6d98c07b418b16061ae92392947d5dd6958a708 (patch)
treee777fcf3019ef0ddc6c278ef733c487f5b0532c3 /kafka/producer.py
parent3499e2f6ead76e1c2db6ac754358bd57f9a15268 (diff)
downloadkafka-python-b6d98c07b418b16061ae92392947d5dd6958a708.tar.gz
Big code re-org
Diffstat (limited to 'kafka/producer.py')
-rw-r--r--kafka/producer.py22
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()