1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xavier-lam-django-cache-lock

Клонировать/Скачать
README.md 3.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 01:15 abab2b6

django-cache-lock

PyPI Build Status

Простое расширение блокировки для кэша 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).

Поддерживаемые серверные части

  • django.core.cache.backends.db
  • django.core.cache.backends.file
  • django.core.cache.backends.locmem
  • django.core.cache.backends.memcached
  • django-redis
  • django-redis-cache

ВНИМАНИЕ

Серверная часть locmem

  • НЕ ИСПОЛЬЗУЙТЕ серверную часть locmem в рабочей среде.

Серверная часть memcached

  • Memcached не поддерживает время истечения срока действия в миллисекундах, и его время истечения срока действия не очень точное. Поэтому время ожидания блокировки memcached не такое точное, как у других серверных частей.

Серверная часть redis

  • Мы не тестировали распределённую блокировку redis.

ЗАДАЧИ:

  • использовать cas memcached для снятия блокировки
  • повторно получить и продлить блокировку
  • поддержка кеша базы данных

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xavier-lam-django-cache-lock.git
git@api.gitlife.ru:oschina-mirror/xavier-lam-django-cache-lock.git
oschina-mirror
xavier-lam-django-cache-lock
xavier-lam-django-cache-lock
master