一个用redis做的分布式锁,含有超时及重试机制.
Project description
###一个用redis实现的分布式锁,含有retry和timetout的功能。
* 用with做锁的逻辑语句
* timeout避免了避免了任务出现异常,没有做delete操作
* 对于长时间的业务,增加retry重试锁的次数
更新:
1. 增加了ask_lock接口
```
#coding:utf-8
#my blog: http://xiaorui.cc
from __future__ import with_statement
import redis
import time
from redis_netlock import dist_lock
client = redis.Redis(connection_pool=redis.BlockingConnectionPool(max_connections=15, host='localhost', port=6379))
with dist_lock('test', client):
time.sleep(10)
print 'welcome to my blog, http://xiaorui.cc'
```
#####同时运行test.py and test2.py
python test.py
```
root@li568-252 redis_netlock]# python test.py
welcome to my blog, http://xiaorui.cc
```
python test2.py
```
[root@li568-252 redis_netlock]# python test2.py
Sleeipng for 0.404031367603
Sleeipng for 1.19347232007
Sleeipng for 2.47668271021
Sleeipng for 4.55280708824
hello
```
* 用with做锁的逻辑语句
* timeout避免了避免了任务出现异常,没有做delete操作
* 对于长时间的业务,增加retry重试锁的次数
更新:
1. 增加了ask_lock接口
```
#coding:utf-8
#my blog: http://xiaorui.cc
from __future__ import with_statement
import redis
import time
from redis_netlock import dist_lock
client = redis.Redis(connection_pool=redis.BlockingConnectionPool(max_connections=15, host='localhost', port=6379))
with dist_lock('test', client):
time.sleep(10)
print 'welcome to my blog, http://xiaorui.cc'
```
#####同时运行test.py and test2.py
python test.py
```
root@li568-252 redis_netlock]# python test.py
welcome to my blog, http://xiaorui.cc
```
python test2.py
```
[root@li568-252 redis_netlock]# python test2.py
Sleeipng for 0.404031367603
Sleeipng for 1.19347232007
Sleeipng for 2.47668271021
Sleeipng for 4.55280708824
hello
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
redis_netlock-1.6.tar.gz
(2.3 kB
view details)
File details
Details for the file redis_netlock-1.6.tar.gz.
File metadata
- Download URL: redis_netlock-1.6.tar.gz
- Upload date:
- Size: 2.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
701eff5a2b6971c572e99d01c70a3fc85a8d3b4c59a406dbb3f971779498d347
|
|
| MD5 |
81daba1258b03996677e1b81d4db4f4e
|
|
| BLAKE2b-256 |
fd84a972c587c2e4805b2a5aae10a4a4df21c5e6776f9d815aced163b1c3bd25
|