GitLab CI commited on
Commit
f7fc44d
·
1 Parent(s): 3490126

Déploiement automatique depuis GitLab CI - 2026-05-24 06:56:33

Browse files
Files changed (1) hide show
  1. api.py +7 -5
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 = 12 * 3600 # 12 heures en secondes
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 12 h
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 // 3600}h")
194
  while True:
195
- time.sleep(KEEP_ALIVE_INTERVAL)
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.debug("Vérification de santé de l'API")
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 {