From 831427bcc0d0120cbee908ccd09c87e8f8c1120e Mon Sep 17 00:00:00 2001 From: Ilan Steemers Date: Mon, 6 Jul 2015 13:52:03 +0200 Subject: [PATCH] Upped version to 0.2.1 adds support for django-redis connections --- README.rst | 3 +++ django_q/__init__.py | 2 +- django_q/conf.py | 20 +++++++++++++++++++- docs/install.rst | 15 +++++++++++++++ setup.py | 2 +- 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index dee6839..09c7dfa 100644 --- a/README.rst +++ b/README.rst @@ -84,6 +84,9 @@ All configuration settings are optional. e.g: For full configuration options, see the `configuration documentation `__. + +If you are using `django-redis `__ , you can `configure Django Q `__ to use its connection pool. + Management Commands ~~~~~~~~~~~~~~~~~~~ diff --git a/django_q/__init__.py b/django_q/__init__.py index 8e11fbf..a30c5c7 100644 --- a/django_q/__init__.py +++ b/django_q/__init__.py @@ -1,6 +1,6 @@ from .tasks import async, schedule, result, fetch from .models import Task, Schedule -VERSION = (0, 2, 0) +VERSION = (0, 2, 1) default_app_config = 'django_q.apps.DjangoQConfig' diff --git a/django_q/conf.py b/django_q/conf.py index c19fc8c..396f937 100644 --- a/django_q/conf.py +++ b/django_q/conf.py @@ -16,6 +16,10 @@ class Conf(object): # Redis server configuration . Follows standard redis keywords REDIS = conf.get('redis', {}) + # Support for Django-Redis connections + + DJANGO_REDIS = conf.get('django_redis', None) + # Name of the cluster or site. For when you run multiple sites on one redis server PREFIX = conf.get('name', 'default') @@ -74,5 +78,19 @@ if not logger.handlers: handler.setFormatter(formatter) logger.addHandler(handler) + +# Django-redis support +if Conf.DJANGO_REDIS: + try: + import django_redis + except ImportError: + django_redis = None + + +def get_redis_client(): + if Conf.DJANGO_REDIS and django_redis: + return django_redis.get_redis_connection(Conf.DJANGO_REDIS) + return redis.StrictRedis(**Conf.REDIS) + # redis client -redis_client = redis.StrictRedis(**Conf.REDIS) +redis_client = get_redis_client() diff --git a/docs/install.rst b/docs/install.rst index f0e3756..8f281b7 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -109,6 +109,21 @@ Connection settings for Redis. Defaults:: For more information on these settings please refer to the `Redis-py `__ documentation +django_redis +~~~~~~~~~~~~ + +If you are already using `django-redis `__ for your caching, you can take advantage of its excellent connection backend by supplying the name +of the cache connection you want to use:: + + # example django-redis connection + Q_CLUSTER = { + 'name': 'DJRedis', + 'workers': 4, + 'timeout': 90, + 'django_redis: 'default' + } + + .. tip:: Django Q uses your :const:`SECRET_KEY` to encrypt task packages and prevent task crossover. So make sure you have it set up in your Django settings. diff --git a/setup.py b/setup.py index 4a5c645..4c53bcb 100644 --- a/setup.py +++ b/setup.py @@ -26,7 +26,7 @@ class PyTest(Command): setup( name='django-q', - version='0.2.0', + version='0.2.1', author='Ilan Steemers', author_email='koed00@gmail.com', packages=['django_q'],