diff --git a/db_mutex/db_mutex.py b/db_mutex/db_mutex.py index c6e0b9a..28e44e3 100644 --- a/db_mutex/db_mutex.py +++ b/db_mutex/db_mutex.py @@ -1,9 +1,10 @@ -from datetime import datetime, timedelta +from datetime import timedelta import functools import logging from django.conf import settings from django.db import transaction, IntegrityError +from django.utils import timezone from .exceptions import DBMutexError, DBMutexTimeoutError from .models import DBMutex @@ -83,7 +84,7 @@ def delete_expired_locks(self): """ ttl_seconds = self.get_mutex_ttl_seconds() if ttl_seconds is not None: - DBMutex.objects.filter(creation_time__lte=datetime.utcnow() - timedelta(seconds=ttl_seconds)).delete() + DBMutex.objects.filter(creation_time__lte=timezone.now() - timedelta(seconds=ttl_seconds)).delete() def __call__(self, func): return self.decorate_callable(func) diff --git a/db_mutex/models.py b/db_mutex/models.py index df8c398..100fd89 100644 --- a/db_mutex/models.py +++ b/db_mutex/models.py @@ -13,3 +13,6 @@ class DBMutex(models.Model): """ lock_id = models.CharField(max_length=256, unique=True) creation_time = models.DateTimeField(auto_now_add=True) + + class Meta: + app_label = 'db_mutex' diff --git a/db_mutex/version.py b/db_mutex/version.py index 020ed73..d93b5b2 100644 --- a/db_mutex/version.py +++ b/db_mutex/version.py @@ -1 +1 @@ -__version__ = '0.2.2' +__version__ = '0.2.3' diff --git a/docs/installation.rst b/docs/installation.rst index 1e36039..4a9be83 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -1,10 +1,17 @@ Installation ============ -To install the latest release, type:: - +* Install Django-db-mutex with your favorite Python package manager:: + + # Using pip pip install django-db-mutex + + # Or, using pip (from source, in editable form) + pip install -e git://github.com/ambitioninc/django-db-mutex.git#egg=django-db-mutex -To install the latest code directly from source, type:: +* Add ``'db_mutex'`` to your ``INSTALLED_APPS`` setting:: - pip install git+git://github.com/ambitioninc/django-db-mutex.git + INSTALLED_APPS = ( + # other apps + 'db_mutex', + ) diff --git a/run_tests.py b/run_tests.py index b71a452..c008daa 100644 --- a/run_tests.py +++ b/run_tests.py @@ -1,6 +1,3 @@ -""" -Provides the ability to run test on a standalone Django app. -""" import sys from optparse import OptionParser @@ -14,7 +11,7 @@ django.setup() # Django nose must be imported here since it depends on the settings being configured -from django_nose import NoseTestSuiteRunner +from django_nose import NoseTestSuiteRunner # noqa def run_tests(*test_args, **kwargs): diff --git a/settings.py b/settings.py index 1716a07..2df6751 100644 --- a/settings.py +++ b/settings.py @@ -49,7 +49,7 @@ def configure_settings(): 'django_nose', ), DEBUG=False, - CACHES = { + CACHES={ 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'unique-snowflake' diff --git a/setup.py b/setup.py index b9772e2..a8cd433 100644 --- a/setup.py +++ b/setup.py @@ -1,10 +1,12 @@ -# import multiprocessing to avoid this bug (http://bugs.python.org/issue15881#msg170215) -import multiprocessing -assert multiprocessing import re +import multiprocessing from setuptools import setup, find_packages +# import multiprocessing to avoid this bug (http://bugs.python.org/issue15881#msg170215) +assert multiprocessing + + def get_version(): """ Extracts the version number from the version.py file.