Skip to content
This repository has been archived by the owner on Apr 12, 2020. It is now read-only.
/ redis-semaphore Public archive
forked from bluele/redis-semaphore

A distributed semaphore and mutex built on Redis.

License

Notifications You must be signed in to change notification settings

sibson/redis-semaphore

 
 

Repository files navigation

Redis-Semaphore

https://travis-ci.org/bluele/redis-semaphore.svg?branch=master

A distributed semaphore and mutex built on Redis.

Installation

To install redis-semaphore, simply:

pip install redis-semaphore

Or alternatively, you can download the repository and install manually by doing:

git clone git@github.com:bluele/redis-semaphore.git
cd redis-semaphore
python setup.py install

Examples

from redis import Redis
from redis_semaphore import Semaphore
from threading import Thread
import urllib2
import time

semaphore = Semaphore(Redis(), count=2, namespace='example')


def task(i):
    url = 'https://www.google.co.jp/'
    with semaphore:
        print('id: {} => {}'.format(i, urllib2.urlopen(url).code))
        print('sleep...')
        time.sleep(2)


def main():
    threads = list()
    for i in range(5):
        threads.append(Thread(target=task, args=(i,)))
    for th in threads:
        th.start()
    for th in threads:
        th.join()

if __name__ == '__main__':
    main()

About

A distributed semaphore and mutex built on Redis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%