shell
pip install redis
python
import redis
redis_client = redis.Redis(host='localhost', port=6379, db=0)
python
import time
class DistributedLock:
def __init__(self, redis_client, lock_key, timeout=10):
self.redis_client = redis_client
self.lock_key = lock_key
self.timeout = timeout
def acquire_lock(self):
start_time = time.time()
while True:
lock_acquired = self.redis_client.setnx(self.lock_key, 1)
if lock_acquired:
return True
elif time.time() - start_time > self.timeout:
return False
time.sleep(0.1)
def release_lock(self):
self.redis_client.delete(self.lock_key)
python
lock_key = 'my_lock'
lock = DistributedLock(redis_client, lock_key)
if lock.acquire_lock():
try:
time.sleep(3)
finally:
lock.release_lock()
else: