25 lines
766 B
Python
25 lines
766 B
Python
from app.extensions import redis_controller
|
|
import time
|
|
import redis
|
|
|
|
# DEPRECATED - DO NOT USE ANYMORE - USE REDIS_LOCKS INSTEAD
|
|
def acquire_lock(lock_name, acquire_timeout=10, lock_timeout=60):
|
|
"""Acquires a Redis lock with a specific name."""
|
|
identifier = str(time.time())
|
|
end_time = time.time() + acquire_timeout
|
|
|
|
while time.time() < end_time:
|
|
if redis_controller.set(lock_name, identifier, nx=True, ex=lock_timeout):
|
|
return identifier
|
|
time.sleep(0.001)
|
|
|
|
return None
|
|
|
|
def release_lock(lock_name, identifier):
|
|
"""Releases a Redis lock with a specific name and identifier."""
|
|
if redis_controller.get(lock_name) == identifier:
|
|
redis_controller.delete(lock_name)
|
|
return True
|
|
return False
|
|
|