44from dataclasses import dataclass
55from datetime import datetime , timedelta
66from operator import attrgetter
7- from typing import TYPE_CHECKING , Any , Callable , List , Optional , Tuple , Union , cast
7+ from typing import TYPE_CHECKING , Any , Callable , Dict , List , Optional , Tuple , Union , cast
88from urllib .parse import parse_qs , urlparse
99from uuid import uuid4
1010
@@ -48,6 +48,7 @@ class RedisSettings:
4848
4949 sentinel : bool = False
5050 sentinel_master : str = 'mymaster'
51+ sentinel_kwargs : Optional [Dict [str , Any ]] = None
5152
5253 retry_on_timeout : bool = False
5354 retry_on_error : Optional [List [Exception ]] = None
@@ -242,7 +243,7 @@ def pool_factory(*args: Any, **kwargs: Any) -> ArqRedis:
242243 client = Sentinel ( # type: ignore[misc]
243244 * args ,
244245 sentinels = settings .host ,
245- ssl = settings .ssl ,
246+ sentinel_kwargs = settings .sentinel_kwargs ,
246247 ** kwargs ,
247248 )
248249 redis = client .master_for (settings .sentinel_master , redis_class = ArqRedis )
@@ -255,13 +256,6 @@ def pool_factory(*args: Any, **kwargs: Any) -> ArqRedis:
255256 port = settings .port ,
256257 unix_socket_path = settings .unix_socket_path ,
257258 socket_connect_timeout = settings .conn_timeout ,
258- ssl = settings .ssl ,
259- ssl_keyfile = settings .ssl_keyfile ,
260- ssl_certfile = settings .ssl_certfile ,
261- ssl_cert_reqs = settings .ssl_cert_reqs ,
262- ssl_ca_certs = settings .ssl_ca_certs ,
263- ssl_ca_data = settings .ssl_ca_data ,
264- ssl_check_hostname = settings .ssl_check_hostname ,
265259 retry = settings .retry ,
266260 retry_on_timeout = settings .retry_on_timeout ,
267261 retry_on_error = settings .retry_on_error ,
@@ -271,7 +265,17 @@ def pool_factory(*args: Any, **kwargs: Any) -> ArqRedis:
271265 while True :
272266 try :
273267 pool = pool_factory (
274- db = settings .database , username = settings .username , password = settings .password , encoding = 'utf8'
268+ db = settings .database ,
269+ username = settings .username ,
270+ password = settings .password ,
271+ encoding = 'utf8' ,
272+ ssl = settings .ssl ,
273+ ssl_keyfile = settings .ssl_keyfile ,
274+ ssl_certfile = settings .ssl_certfile ,
275+ ssl_cert_reqs = settings .ssl_cert_reqs ,
276+ ssl_ca_certs = settings .ssl_ca_certs ,
277+ ssl_ca_data = settings .ssl_ca_data ,
278+ ssl_check_hostname = settings .ssl_check_hostname ,
275279 )
276280 pool .job_serializer = job_serializer
277281 pool .job_deserializer = job_deserializer
0 commit comments