summaryrefslogtreecommitdiff
path: root/kafka/conn.py
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2018-03-08 08:17:36 -0800
committerGitHub <noreply@github.com>2018-03-08 08:17:36 -0800
commitb33a65116ef6936183f09ca56930ccae39378c5f (patch)
tree8127f25572c061574d733db7d1a1c21934a33a23 /kafka/conn.py
parent4c383daf8a9d7aaa5049a98d7d6da19c85793d2d (diff)
downloadkafka-python-b33a65116ef6936183f09ca56930ccae39378c5f.tar.gz
Fix BrokerConnection.connection_delay() to return milliseconds (#1414)
Diffstat (limited to 'kafka/conn.py')
-rw-r--r--kafka/conn.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/kafka/conn.py b/kafka/conn.py
index 0c8ae9a..d778c31 100644
--- a/kafka/conn.py
+++ b/kafka/conn.py
@@ -594,9 +594,16 @@ class BrokerConnection(object):
return False
def connection_delay(self):
- time_waited_ms = time.time() - (self.last_attempt or 0)
+ """
+ Return the number of milliseconds to wait, based on the connection
+ state, before attempting to send data. When disconnected, this respects
+ the reconnect backoff time. When connecting, returns 0 to allow
+ non-blocking connect to finish. When connected, returns a very large
+ number to handle slow/stalled connections.
+ """
+ time_waited = time.time() - (self.last_attempt or 0)
if self.state is ConnectionStates.DISCONNECTED:
- return max(self._reconnect_backoff - time_waited_ms, 0)
+ return max(self._reconnect_backoff - time_waited, 0) * 1000
elif self.connecting():
return 0
else: