summaryrefslogtreecommitdiff
path: root/kafka/coordinator/heartbeat.py
diff options
context:
space:
mode:
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()