summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Powers <dana.powers@rd.io>2015-06-04 13:29:46 -0700
committerDana Powers <dana.powers@rd.io>2015-06-06 19:27:55 -0700
commit3fdd7b78dcf2c29b72f301eec0bf71e74c1672b3 (patch)
tree0ad471ecba187111d2657f5d7167ee987bfb8a78
parent6faa7c0e697b3096391453e50149c0dac59b05e0 (diff)
downloadkafka-python-3fdd7b78dcf2c29b72f301eec0bf71e74c1672b3.tar.gz
PR 331 fixup: Support unlimited retries with async_retry_limit=None
Async producer defaults are now retry everything always w/ 100ms backoff
-rw-r--r--kafka/producer/base.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/kafka/producer/base.py b/kafka/producer/base.py
index ef81a69..05adb5e 100644
--- a/kafka/producer/base.py
+++ b/kafka/producer/base.py
@@ -32,10 +32,10 @@ BATCH_SEND_MSG_COUNT = 20
# unlimited
ASYNC_QUEUE_MAXSIZE = 0
ASYNC_QUEUE_PUT_TIMEOUT = 0
-# no retries by default
-ASYNC_RETRY_LIMIT = 0
-ASYNC_RETRY_BACKOFF_MS = 0
-ASYNC_RETRY_ON_TIMEOUTS = False
+# unlimited retries by default
+ASYNC_RETRY_LIMIT = None
+ASYNC_RETRY_BACKOFF_MS = 100
+ASYNC_RETRY_ON_TIMEOUTS = True
STOP_ASYNC_PRODUCER = -1
@@ -131,8 +131,10 @@ def _send_upstream(queue, client, codec, batch_time, batch_size,
if retry_state['do_refresh']:
client.load_metadata_for_topics()
- reqs = dict((key, count + 1) for (key, count) in reqs.items()
- if key in reqs_to_retry and count < retry_options.limit)
+ reqs = dict((key, count + 1)
+ for (key, count) in reqs.items()
+ if key in reqs_to_retry
+ and (retry_options.limit is None or (count < retry_options.limit)))
class Producer(object):