Metadata-Version: 2.4
Name: distlock-client
Version: 0.1.1
Summary: Distribute lock system's client.
Home-page: https://github.com/appstore-zencore/distlock-client
Author: zencore
Author-email: appstore@zencore.cn
License: MIT
Keywords: distlock-client,distlock
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires: requests
Requires-Dist: requests
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: requires
Dynamic: requires-dist
Dynamic: summary

distlock-client
===============

.. image:: https://travis-ci.org/appstore-zencore/distlock-client.svg?branch=master
    :target: https://travis-ci.org/appstore-zencore/distlock-client

.. image:: https://img.shields.io/codecov/c/github/appstore-zencore/distlock-client.svg?style=flat-square
    :target: https://codecov.io/gh/appstore-zencore/distlock-client


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)


2. 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]

