summaryrefslogtreecommitdiff
path: root/kafka/coordinator/heartbeat.py
diff options
context:
space:
mode:
authorDana Powers <dana.powers@rd.io>2015-12-29 19:08:35 -0800
committerDana Powers <dana.powers@rd.io>2015-12-29 19:08:35 -0800
commit3afdd285a3c92a2c4add5b2b1bd94cfcec4fedd9 (patch)
tree2c38fd2c577442cb90c99ee2d49b5b0f68300303 /kafka/coordinator/heartbeat.py
parente5c7d81e7c35e6b013cece347ef42d9f21d03aa6 (diff)
downloadkafka-python-3afdd285a3c92a2c4add5b2b1bd94cfcec4fedd9.tar.gz
Switch configs from attributes to dict to make passing / inspecting easier
Diffstat (limited to 'kafka/coordinator/heartbeat.py')
-rw-r--r--kafka/coordinator/heartbeat.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/kafka/coordinator/heartbeat.py b/kafka/coordinator/heartbeat.py
index c153ddd..41ba025 100644
--- a/kafka/coordinator/heartbeat.py
+++ b/kafka/coordinator/heartbeat.py
@@ -1,23 +1,27 @@
+import copy
import time
import kafka.common as Errors
class Heartbeat(object):
- _heartbeat_interval_ms = 3000
- _session_timeout_ms = 30000
-
- def __init__(self, **kwargs):
- for config in ('heartbeat_interval_ms', 'session_timeout_ms'):
- if config in kwargs:
- setattr(self, '_' + config, kwargs.pop(config))
-
- if self._heartbeat_interval_ms > self._session_timeout_ms:
+ DEFAULT_CONFIG = {
+ 'heartbeat_interval_ms': 3000,
+ 'session_timeout_ms': 30000,
+ }
+
+ def __init__(self, **configs):
+ self.config = copy.copy(self.DEFAULT_CONFIG)
+ for key in self.config:
+ if key in configs:
+ self.config[key] = configs[key]
+
+ if self.config['heartbeat_interval_ms'] > self.config['session_timeout_ms']:
raise Errors.IllegalArgumentError("Heartbeat interval must be set"
" lower than the session timeout")
- self.interval = self._heartbeat_interval_ms / 1000.0
- self.timeout = self._session_timeout_ms / 1000.0
+ self.interval = self.config['heartbeat_interval_ms'] / 1000.0
+ self.timeout = self.config['session_timeout_ms'] / 1000.0
self.last_send = 0
self.last_receive = 0
self.last_reset = time.time()