distlock-client

Distribute lock system's client.


Keywords
distlock-client
License
MIT
Install
pip install distlock-client==0.1.1

Documentation

distlock-client

https://travis-ci.org/appstore-zencore/distlock-client.svg?branch=master https://img.shields.io/codecov/c/github/appstore-zencore/distlock-client.svg?style=flat-square

Distribute lock system's client.

Install

pip install distlock-client

Usage

  1. Use Lock apis.
from distlock_client import Lock
from distlock_client import get_app_unique_name
from .services import do_something

def view01(request):
    lockName = "view01_lock"
    appid = get_app_unique_name()
    server = "http://127.0.0.1/"
    lock = Lock(appid, server)

    locked = lock.safe_acquire(lockName, 60)
    if locked:
        try:
            do_something()
        finally:
            lock.safe_release(lockName)
  1. Use with statement.
from distlock_client import Lock
from distlock_client import distlock
from distlock_client import get_app_unique_name
from .services import do_something

def view01(request):
    lockName = "view01_lock"
    appid = get_app_unique_name()
    server = "http://127.0.0.1/"
    lock = Lock(appid, server)
    with distlock(lock, lockName) as locked:
        if locked:
            do_something()

Misc

  1. Available servers.
  • django-distlock-server [python, django, database backend]
  • django-distlock-server-redis [python, django, redis backend]