rkonan's picture
ajout version cache heatmap
9b3e2a4
import requests
import time
from app.log import logger
from app.config import MODEL_NAME, ORCHESTRATOR_URL, OWN_URL,MODEL_TYPE
def heartbeat():
while True:
try:
response = requests.post(
f"{ORCHESTRATOR_URL}/heartbeat",
json={"model_name": MODEL_NAME},
timeout=5
)
if response.status_code == 200:
logger.info(f"💓 Heartbeat envoyé pour {MODEL_NAME}")
elif response.status_code == 404:
logger.warning(f"⚠️ Modèle inconnu dans orchestrateur (404) → tentative de réenregistrement")
# Tentative de réenregistrement à chaud
register_with_orchestrator()
else:
logger.warning(f"⚠️ Heartbeat refusé ({response.status_code}) : {response.text}")
except Exception as e:
logger.error(f"❌ Erreur lors du heartbeat : {e}")
time.sleep(60)
def register_with_orchestrator():
try:
logger.info(f"📡 Tentative d'enregistrement de {MODEL_NAME} à l'orchestrateur...")
response = requests.post(
f"{ORCHESTRATOR_URL}/register_model",
json={"model_name": MODEL_NAME, "model_type": MODEL_TYPE,"url": f"{OWN_URL}"}
)
if response.status_code == 200:
logger.info("✅ Modèle enregistré avec succès")
return True
else:
logger.info(f"⚠️ Échec enregistrement : {response.text}")
return False
except Exception as e:
logger.info(f"❌ Erreur d'enregistrement : {e}")
def register_forever(interval=30):
while True:
success = register_with_orchestrator()
if success:
break # On arrête de réessayer
logger.info(f"⏳ Nouvel essai dans {interval} secondes...")
time.sleep(interval)