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()
Release files for Redis-Semaphore 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Redis-Semaphore-0.2.2.tar.gz | 4.0 kB | Details |
Release files / Redis-Semaphore-0.2.2.tar.gz
| Download URL | Redis-Semaphore-0.2.2.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3ce7113fda317692c27ed704e3da41444f1c004d5bd19a0aaa56adfda5bbaec
|
|
BLAKE2b-256 checksum How to use checksums |
30de431fbf151d1f7cf72b14d6f7ddc700310e6692aac116eda3b1e9800c9f55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |