Простое расширение блокировки для кэша Django, предотвращающее одновременное редактирование.
Установите django-cache-lock с помощью pip:
pip install django-cache-lock
Вы можете работать с django-cache-lock, используя оператор with или декоратор.
from django_lock import lock
with lock("global"):
pass
@lock("global")
def foo():
pass
Ярлык для блокировки экземпляра модели
from django.db import models
from django_lock import model_lock
class Foo(models.Model):
bar = models.CharField(max_length=8)
@lock_model
def lock_pk(self):
pass
@lock_model("bar", blocking=False)
def lock_bar(self):
pass
ключ | по умолчанию | описание |
---|---|---|
DJANGOLOCK_PREFIX | "lock:" | префикс ключа блокировки, хранящийся в кэше |
DJANGOLOCK_SLEEP | 0.1 | интервал времени по умолчанию для получения блокировки, если блокировка удерживается другими |
DJANGOLOCK_RELEASEONDEL | True | освобождает блокировку при вызове del, если True |
Для более подробного использования ознакомьтесь с кодом (django_lock.py).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )