Skip to content

Commit db0b7e8

Browse files
committed
fix:create type for BrokerMetaData
1 parent 30eb271 commit db0b7e8

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

scheduler/broker_types.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# This is a helper module to obfuscate types used by different broker implementations.
2+
from collections import namedtuple
23
from typing import Union, Dict, Tuple, Type
34

45
import redis
@@ -18,10 +19,12 @@
1819
PipelineType = Union[redis.client.Pipeline, valkey.client.Pipeline]
1920
SentinelType = Union[redis.sentinel.Sentinel, valkey.sentinel.Sentinel]
2021

21-
BrokerMetaData: Dict[Tuple[Broker, bool], Tuple[Type[ConnectionType], Type[SentinelType], str]] = {
22+
BrokerMetaDataType = namedtuple("BrokerMetaDataType", ["connection_type", "sentinel_type", "ssl_prefix"])
23+
24+
BrokerMetaData: Dict[Tuple[Broker, bool], BrokerMetaDataType] = {
2225
# Map of (Broker, Strict flag) => Connection Class, Sentinel Class, SSL Connection Prefix
23-
(Broker.REDIS, False): (redis.Redis, redis.sentinel.Sentinel, "rediss"),
24-
(Broker.VALKEY, False): (valkey.Valkey, valkey.sentinel.Sentinel, "valkeys"),
25-
(Broker.REDIS, True): (redis.StrictRedis, redis.sentinel.Sentinel, "rediss"),
26-
(Broker.VALKEY, True): (valkey.StrictValkey, valkey.sentinel.Sentinel, "valkeys"),
26+
(Broker.REDIS, False): BrokerMetaDataType(redis.Redis, redis.sentinel.Sentinel, "rediss"),
27+
(Broker.VALKEY, False): BrokerMetaDataType(valkey.Valkey, valkey.sentinel.Sentinel, "valkeys"),
28+
(Broker.REDIS, True): BrokerMetaDataType(redis.StrictRedis, redis.sentinel.Sentinel, "rediss"),
29+
(Broker.VALKEY, True): BrokerMetaDataType(valkey.StrictValkey, valkey.sentinel.Sentinel, "valkeys"),
2730
}

scheduler/queues.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ def _get_broker_connection(config, use_strict_broker=False):
3434

3535
broker_cls = fakeredis.FakeRedis if not use_strict_broker else fakeredis.FakeStrictRedis
3636
else:
37-
broker_cls = BrokerMetaData[(SCHEDULER_CONFIG.BROKER, use_strict_broker)][0]
37+
broker_cls = BrokerMetaData[(SCHEDULER_CONFIG.BROKER, use_strict_broker)].connection_type
3838
logger.debug(f"Getting connection for {config}")
3939
if "URL" in config:
40-
ssl_url_protocol = BrokerMetaData[(SCHEDULER_CONFIG.BROKER, use_strict_broker)][2]
40+
ssl_url_protocol = BrokerMetaData[(SCHEDULER_CONFIG.BROKER, use_strict_broker)].ssl_prefix
4141
if config.get("SSL") or config.get("URL").startswith(f"{ssl_url_protocol}://"):
4242
return broker_cls.from_url(
4343
config["URL"],
@@ -61,7 +61,7 @@ def _get_broker_connection(config, use_strict_broker=False):
6161
}
6262
connection_kwargs.update(config.get("CONNECTION_KWARGS", {}))
6363
sentinel_kwargs = config.get("SENTINEL_KWARGS", {})
64-
SentinelClass = BrokerMetaData[(SCHEDULER_CONFIG.BROKER, use_strict_broker)][1]
64+
SentinelClass = BrokerMetaData[(SCHEDULER_CONFIG.BROKER, use_strict_broker)].sentinel_type
6565
sentinel = SentinelClass(config["SENTINELS"], sentinel_kwargs=sentinel_kwargs, **connection_kwargs)
6666
return sentinel.master_for(
6767
service_name=config["MASTER_NAME"],

0 commit comments

Comments
 (0)