fix: without redlock in code
This commit is contained in:
parent
4411f62fcf
commit
ac0ee58889
@ -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__":
|
||||
|
Loading…
x
Reference in New Issue
Block a user