To acquire a lock:
from redis import Redis
from redis_semaphore_eval import semaphore
redis = Redis(host="localhost", port=6379, db=0)
key = "unique_lock_key"
with semaphore(redis, key=key, limit=2, expire_in=5, timeout=1) as lock_id:
...To acquire a lock but continuously renew it in a background thread:
from redis import Redis
from redis_semaphore_eval import auto_renewing_semaphore
redis = Redis(host="localhost", port=6379, db=0)
key = "unique_lock_key"
with auto_renewing_semaphore(
redis,
key=key,
limit=2,
expire_in=5,
timeout=1,
auto_renewal_interval=4
) as lock_id:
...poetry run pre-commit install -t pre-commit -t commit-msg && poetry run pre-commit run --all
docker-compose up -d
poetry run python -m pytest
docker-compose down