summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2016-02-15 11:23:16 -0800
committerDana Powers <dana.powers@gmail.com>2016-02-15 11:23:16 -0800
commitc6b9f84e49675a69ccabc18e8e8fbcbf428a55f2 (patch)
tree7679f9e467c3a76c901ce4a99b70529d7d751bfd
parent6c213d62b6ffb52decfb58b57eef41963e570244 (diff)
downloadkafka-python-c6b9f84e49675a69ccabc18e8e8fbcbf428a55f2.tar.gz
Update SimpleClient docs (Issue 543)
-rw-r--r--docs/simple.rst55
1 files changed, 37 insertions, 18 deletions
diff --git a/docs/simple.rst b/docs/simple.rst
index 00a21ac..253f543 100644
--- a/docs/simple.rst
+++ b/docs/simple.rst
@@ -2,8 +2,8 @@ Simple APIs (DEPRECATED)
************************
-SimpleConsumer
-==============
+SimpleConsumer (DEPRECATED)
+===========================
.. code:: python
@@ -37,8 +37,8 @@ SimpleConsumer
client.close()
-SimpleProducer
-==============
+SimpleProducer (DEPRECATED)
+===========================
Asynchronous Mode
-----------------
@@ -98,8 +98,8 @@ Synchronous Mode
logging.info(r.offset)
-KeyedProducer
-=============
+KeyedProducer (DEPRECATED)
+==========================
.. code:: python
@@ -121,24 +121,43 @@ KeyedProducer
producer = KeyedProducer(kafka, partitioner=RoundRobinPartitioner)
-SimpleClient
-============
+SimpleClient (DEPRECATED)
+=========================
.. code:: python
- from kafka import SimpleClient, create_message
- from kafka.protocol import KafkaProtocol
- from kafka.common import ProduceRequest
+ import time
+ from kafka import SimpleClient
+ from kafka.common import (
+ LeaderNotAvailableError, NotLeaderForPartitionError,
+ ProduceRequestPayload)
+ from kafka.protocol import create_message
- kafka = SimpleClient("localhost:9092")
+ kafka = SimpleClient('localhost:9092')
+ payload = ProduceRequestPayload(topic='my-topic', partition=0,
+ messages=[create_message("some message")])
+
+ retries = 5
+ resps = []
+ while retries and not resps:
+ retries -= 1
+ try:
+ resps = kafka.send_produce_request(
+ payloads=[payload], fail_on_error=True)
+ except LeaderNotAvailableError, NotLeaderForPartitionError:
+ kafka.load_metadata_for_topics()
+ time.sleep(1)
+
+ # Other exceptions you might consider handling:
+ # UnknownTopicOrPartitionError, TopicAuthorizationFailedError,
+ # RequestTimedOutError, MessageSizeTooLargeError, InvalidTopicError,
+ # RecordListTooLargeError, InvalidRequiredAcksError,
+ # NotEnoughReplicasError, NotEnoughReplicasAfterAppendError
- req = ProduceRequest(topic="my-topic", partition=1,
- messages=[create_message("some message")])
- resps = kafka.send_produce_request(payloads=[req], fail_on_error=True)
kafka.close()
- resps[0].topic # "my-topic"
- resps[0].partition # 1
- resps[0].error # 0 (hopefully)
+ resps[0].topic # 'my-topic'
+ resps[0].partition # 0
+ resps[0].error # 0
resps[0].offset # offset of the first message sent in this request