fix: without redlock in code

This commit is contained in:
administrateur 2025-03-29 16:06:42 +01:00
parent 4411f62fcf
commit ac0ee58889

View File

@ -3,7 +3,7 @@ import os
import subprocess
import base64
import requests
from redlock import Redlock
import redis
from threading import Thread, Lock
import time
@ -24,9 +24,9 @@ if not S3_ACCESS_KEY or not S3_SECRET_KEY:
redis_host = os.getenv("REDIS_HOST", "redis.redis.svc.cluster.local")
redis_port = int(os.getenv("REDIS_PORT", 6379))
dlm = Redlock([{"host": redis_host, "port": redis_port, "db": 0}])
redis_client = redis.Redis(host=redis_host, port=redis_port, decode_responses=True)
S3_UNMOUNT_CHECK_INTERVAL = int(os.getenv("S3_UNMOUNT_CHECK_INTERVAL", 300)) # 5 minutes par défaut
S3_UNMOUNT_CHECK_INTERVAL = int(os.getenv("S3_UNMOUNT_CHECK_INTERVAL", 300))
lock_prefix = "lock:mkdocs:"
local_lock = Lock()
@ -74,8 +74,7 @@ def unmount_checker():
while True:
time.sleep(S3_UNMOUNT_CHECK_INTERVAL)
log_debug("⏰ Vérification périodique pour démontage S3...")
# Vérification si aucun build actif
active_locks = dlm.redis_clients[0].keys(f"{lock_prefix}*")
active_locks = redis_client.keys(f"{lock_prefix}*")
if not active_locks:
log_debug("🟢 Aucun build actif, démontage S3...")
unmount_s3()
@ -92,8 +91,9 @@ def build_mkdocs():
return jsonify({"error": "WEBSITE manquant"}), 400
lock_key = f"{lock_prefix}{website}"
lock = dlm.lock(lock_key, 60000)
if not lock:
lock_acquired = redis_client.set(lock_key, "locked", nx=True, ex=60)
if not lock_acquired:
log_debug(f"⚠️ Build déjà actif: {website}")
return jsonify({"status": "busy", "message": f"Build déjà actif: {website}"}), 429
@ -122,7 +122,7 @@ def build_mkdocs():
return jsonify({"status": "success", "message": "Build réussi"}), 200
finally:
dlm.unlock(lock)
redis_client.delete(lock_key)
log_debug(f"🔓 Verrou libéré: {website}")
if __name__ == "__main__":