diff --git a/django_q/brokers/redis_broker.py b/django_q/brokers/redis_broker.py index 4f4f285..9750ffd 100644 --- a/django_q/brokers/redis_broker.py +++ b/django_q/brokers/redis_broker.py @@ -59,4 +59,6 @@ class Redis(Broker): def get_connection(list_key=Conf.PREFIX): if django_redis and Conf.DJANGO_REDIS: return django_redis.get_redis_connection(Conf.DJANGO_REDIS) + if isinstance(Conf.REDIS, str): + return redis.from_url(Conf.REDIS) return redis.StrictRedis(**Conf.REDIS) diff --git a/django_q/tests/test_brokers.py b/django_q/tests/test_brokers.py index 9d40b38..c6f7c1c 100644 --- a/django_q/tests/test_brokers.py +++ b/django_q/tests/test_brokers.py @@ -44,6 +44,10 @@ def test_redis(monkeypatch): broker = get_broker() with pytest.raises(Exception): broker.ping() + monkeypatch.setattr(Conf, 'REDIS', 'redis://127.0.0.1:7799') + broker = get_broker() + with pytest.raises(Exception): + broker.ping() def test_custom(monkeypatch): diff --git a/docs/configure.rst b/docs/configure.rst index 1507080..e526763 100644 --- a/docs/configure.rst +++ b/docs/configure.rst @@ -180,6 +180,12 @@ Connection settings for Redis. Defaults:: } } +It's also possible to use a Redis connection URI:: + + Q_CLUSTER = { + 'redis': 'redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:111' + } + For more information on these settings please refer to the `Redis-py `__ documentation .. _django_redis: