diff --git a/mrq/context.py b/mrq/context.py index ec3368aa..8f19e238 100644 --- a/mrq/context.py +++ b/mrq/context.py @@ -139,9 +139,13 @@ def versiontuple(v): if isinstance(config_obj, basestring): import redis as pyredis + import redis.connection as pyredisconnection + connection_class = pyredisconnection.Connection urllib.parse.uses_netloc.append('redis') redis_url = urllib.parse.urlparse(config_obj) + if redis_url.scheme == "rediss": + connection_class = pyredisconnection.SSLConnection log.info("%s: Connecting to Redis at %s..." % (attr, redis_url.hostname)) @@ -153,7 +157,8 @@ def versiontuple(v): password=redis_url.password if redis_url.password is not None else redis_url.username, max_connections=int(config.get("redis_max_connections")), timeout=int(config.get("redis_timeout")), - decode_responses=False + decode_responses=False, + connection_class=connection_class ) return pyredis.StrictRedis(connection_pool=redis_pool)