Metadata-Version: 2.1
Name: redistock
Version: 0.1.3
Summary: A cluster-supported distributed lock on Redis and Python
Home-page: https://github.com/VinceWg/redistock
Author: Vincent
License: MIT
Description: # Redistock
        A simple and easy-to-use and cluster-supported distributed lock implement based on Redis and Python.
        
        ## Installation
        ```bash
        pip install redistock
        ```
        
        ## Usage
        
        Simple usage:
        ```python
        import redis
        from redistock import Redistock
        
        redis_conn = redis.StrictRedis(...)
        
        # simple
        lock = Redistock(redis_conn, 'name')
        if lock.acquire():
            print('Obtained lock')
        lock.release()
        
        # with statement
        with Redistock(redis_conn, 'name'):
            print('Obtained lock')
        
        ```
        
        Advanced usage:
        ```python
        import redis
        from redistock import Redistock
        from redistock import RedistockNotObtained
        
        redis_conn = redis.StrictRedis(...)
        
        
        with Redistock(redis_conn, 'name', ttl=1):
            # will be blocked for 1 seconds
            print('Obtained lock')
        
        
        with Redistock(redis_conn, 'name', ttl=0.001):
            # will be blocked for 1 milliseconds
            print('Obtained lock')
        
        
        with Redistock(redis_conn, 'name', delay=1):
            # will delay 1 seconds between twice retry, default 0.001
            print('Obtained lock')
        
        
        lock = Redistock(redis_conn, 'name', block=False)
        # do not retry, raise RedistockNotObtained if not obtained lock
        if lock.acquire():
            print('Obtained lock')
        lock.release()
        
        
        try:
            with Redistock(redis_conn, 'name', timeout=10):
                # will try to acquire for 10 seconds, success or raise RedistockNotObtained
                # after 10 seconds
                print('Obtained lock')
        except RedistockNotObtained:
            print('Not obtained lock')
        
        ```
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Description-Content-Type: text/markdown
