Skip to content

Commit d6cdaeb

Browse files
authored
Refactored healthcheck and failure detector to extend default one (#3747)
1 parent fb500f6 commit d6cdaeb

File tree

6 files changed

+104
-207
lines changed

6 files changed

+104
-207
lines changed

redis/multidb/client.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,17 @@ class MultiDBClient(RedisModuleCommands, CoreCommands):
2222
"""
2323
def __init__(self, config: MultiDbConfig):
2424
self._databases = config.databases()
25-
self._health_checks = config.default_health_checks() if config.health_checks is None else config.health_checks
25+
self._health_checks = config.default_health_checks()
26+
27+
if config.health_checks is not None:
28+
self._health_checks.extend(config.health_checks)
29+
2630
self._health_check_interval = config.health_check_interval
27-
self._failure_detectors = config.default_failure_detectors() \
28-
if config.failure_detectors is None else config.failure_detectors
31+
self._failure_detectors = config.default_failure_detectors()
32+
33+
if config.failure_detectors is not None:
34+
self._failure_detectors.extend(config.failure_detectors)
35+
2936
self._failover_strategy = config.default_failover_strategy() \
3037
if config.failover_strategy is None else config.failover_strategy
3138
self._failover_strategy.set_databases(self._databases)

redis/multidb/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ class MultiDbConfig:
5151
databases_config: A list of database configurations.
5252
client_class: The client class used to manage database connections.
5353
command_retry: Retry strategy for executing database commands.
54-
failure_detectors: Optional list of failure detectors for monitoring database failures.
54+
failure_detectors: Optional list of additional failure detectors for monitoring database failures.
5555
failure_threshold: Threshold for determining database failure.
5656
failures_interval: Time interval for tracking database failures.
57-
health_checks: Optional list of health checks performed on databases.
57+
health_checks: Optional list of additional health checks performed on databases.
5858
health_check_interval: Time interval for executing health checks.
5959
health_check_retries: Number of retry attempts for performing health checks.
6060
health_check_backoff: Backoff strategy for health check retries.

tests/test_multidb/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ def mock_multi_db_config(
9494
config = MultiDbConfig(
9595
databases_config=[Mock(spec=DatabaseConfig)],
9696
failure_detectors=[mock_fd],
97-
health_checks=[mock_hc],
9897
health_check_interval=hc_interval,
9998
failover_strategy=mock_fs,
10099
auto_fallback_interval=auto_fallback_interval,

0 commit comments

Comments
 (0)