4
4
from dataclasses import dataclass
5
5
from datetime import datetime , timedelta
6
6
from 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
8
8
from urllib .parse import parse_qs , urlparse
9
9
from uuid import uuid4
10
10
@@ -48,6 +48,7 @@ class RedisSettings:
48
48
49
49
sentinel : bool = False
50
50
sentinel_master : str = 'mymaster'
51
+ sentinel_kwargs : Optional [Dict [str , Any ]] = None
51
52
52
53
retry_on_timeout : bool = False
53
54
retry_on_error : Optional [List [Exception ]] = None
@@ -242,7 +243,7 @@ def pool_factory(*args: Any, **kwargs: Any) -> ArqRedis:
242
243
client = Sentinel ( # type: ignore[misc]
243
244
* args ,
244
245
sentinels = settings .host ,
245
- ssl = settings .ssl ,
246
+ sentinel_kwargs = settings .sentinel_kwargs ,
246
247
** kwargs ,
247
248
)
248
249
redis = client .master_for (settings .sentinel_master , redis_class = ArqRedis )
@@ -255,13 +256,6 @@ def pool_factory(*args: Any, **kwargs: Any) -> ArqRedis:
255
256
port = settings .port ,
256
257
unix_socket_path = settings .unix_socket_path ,
257
258
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 ,
265
259
retry = settings .retry ,
266
260
retry_on_timeout = settings .retry_on_timeout ,
267
261
retry_on_error = settings .retry_on_error ,
@@ -271,7 +265,17 @@ def pool_factory(*args: Any, **kwargs: Any) -> ArqRedis:
271
265
while True :
272
266
try :
273
267
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 ,
275
279
)
276
280
pool .job_serializer = job_serializer
277
281
pool .job_deserializer = job_deserializer
0 commit comments