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

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

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

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

Введение

Одно расширение блокировки для Django, основанное на встроенном кэше Django. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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