Spaces:
Running
Running
GitLab CI commited on
Commit ·
f7fc44d
1
Parent(s): 3490126
Déploiement automatique depuis GitLab CI - 2026-05-24 06:56:33
Browse files
api.py
CHANGED
|
@@ -181,18 +181,19 @@ def save_and_upload_csv_logs(input_df: pd.DataFrame, predictions: list):
|
|
| 181 |
# -----------------------------------------------------------------------
|
| 182 |
# Keep-alive : maintien des containers HF Spaces en état "running"
|
| 183 |
# -----------------------------------------------------------------------
|
| 184 |
-
KEEP_ALIVE_INTERVAL =
|
| 185 |
|
| 186 |
|
| 187 |
def _keep_alive_loop():
|
| 188 |
"""
|
| 189 |
Boucle infinie exécutée dans un thread démon.
|
| 190 |
-
Envoie une requête GET vers le dashboard Streamlit toutes les
|
| 191 |
afin de maintenir les deux containers HF Spaces actifs.
|
|
|
|
| 192 |
"""
|
| 193 |
-
logger.info(f"Thread keep-alive démarré – ping du dashboard toutes les {KEEP_ALIVE_INTERVAL //
|
| 194 |
while True:
|
| 195 |
-
|
| 196 |
if DASHBOARD_URL:
|
| 197 |
try:
|
| 198 |
response = requests.get(DASHBOARD_URL, timeout=30)
|
|
@@ -201,6 +202,7 @@ def _keep_alive_loop():
|
|
| 201 |
logger.warning(f"Keep-alive dashboard échoué: {e}")
|
| 202 |
else:
|
| 203 |
logger.warning("Keep-alive: DASHBOARD_URL non défini, ping ignoré")
|
|
|
|
| 204 |
|
| 205 |
|
| 206 |
def start_keep_alive():
|
|
@@ -556,7 +558,7 @@ def health_check():
|
|
| 556 |
Endpoint de vérification de l'état de santé de l'API.
|
| 557 |
"""
|
| 558 |
# Retourner des métriques simples sur l'état de l'API
|
| 559 |
-
logger.
|
| 560 |
# Upload des logs vers HF même en cas d'erreur pour garder une trace de l'incident
|
| 561 |
upload_to_hf(LOG_FILE_PATH, "api_log.jsonl")
|
| 562 |
return {
|
|
|
|
| 181 |
# -----------------------------------------------------------------------
|
| 182 |
# Keep-alive : maintien des containers HF Spaces en état "running"
|
| 183 |
# -----------------------------------------------------------------------
|
| 184 |
+
KEEP_ALIVE_INTERVAL = 25 * 60 # 25 minutes en secondes (HF Spaces gratuit dort après ~1h d'inactivité)
|
| 185 |
|
| 186 |
|
| 187 |
def _keep_alive_loop():
|
| 188 |
"""
|
| 189 |
Boucle infinie exécutée dans un thread démon.
|
| 190 |
+
Envoie une requête GET vers le dashboard Streamlit toutes les 25 min
|
| 191 |
afin de maintenir les deux containers HF Spaces actifs.
|
| 192 |
+
Un ping est envoyé immédiatement au démarrage, puis toutes les 25 min.
|
| 193 |
"""
|
| 194 |
+
logger.info(f"Thread keep-alive démarré – ping du dashboard toutes les {KEEP_ALIVE_INTERVAL // 60} min")
|
| 195 |
while True:
|
| 196 |
+
# Ping immédiat, puis attente avant le prochain
|
| 197 |
if DASHBOARD_URL:
|
| 198 |
try:
|
| 199 |
response = requests.get(DASHBOARD_URL, timeout=30)
|
|
|
|
| 202 |
logger.warning(f"Keep-alive dashboard échoué: {e}")
|
| 203 |
else:
|
| 204 |
logger.warning("Keep-alive: DASHBOARD_URL non défini, ping ignoré")
|
| 205 |
+
time.sleep(KEEP_ALIVE_INTERVAL)
|
| 206 |
|
| 207 |
|
| 208 |
def start_keep_alive():
|
|
|
|
| 558 |
Endpoint de vérification de l'état de santé de l'API.
|
| 559 |
"""
|
| 560 |
# Retourner des métriques simples sur l'état de l'API
|
| 561 |
+
logger.info("Vérification de santé de l'API")
|
| 562 |
# Upload des logs vers HF même en cas d'erreur pour garder une trace de l'incident
|
| 563 |
upload_to_hf(LOG_FILE_PATH, "api_log.jsonl")
|
| 564 |
return {
|