Add purgelock management command. Closes GitLab issue #221.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-06-20 01:55:53 -04:00
parent ea636aac7e
commit 5d13f46548
7 changed files with 49 additions and 3 deletions

View File

@@ -2,9 +2,16 @@ from __future__ import unicode_literals
from django.apps import apps
from .base import LockingBackend
class ModelLock(object):
class ModelLock(LockingBackend):
@classmethod
def acquire_lock(cls, name, timeout=None):
Lock = apps.get_model(app_label='lock_manager', model_name='Lock')
return Lock.objects.acquire_lock(name=name, timeout=timeout)
@classmethod
def purge_locks(cls):
Lock = apps.get_model(app_label='lock_manager', model_name='Lock')
Lock.objects.select_for_update().delete()