Implémentation du cache de métadonnées avec gestion des TTL et amélioration du streaming

Cette mise à jour implémente un système de cache de métadonnées avec gestion des TTL pour les données Radio France. Le cache gère les mises à jour automatiques via des tâches de rafraîchissement, et les clients interrogent uniquement le cache pour obtenir des données à jour. Le streaming est amélioré avec une gestion correcte des connexions et des tâches de rafraîchissement qui s'arrêtent automatiquement à la déconnexion du client. Les versions des packages PMOMusic et pmomediaserver sont mises à jour à 0.3.13.
This commit is contained in:
2026-01-23 22:41:54 +01:00
parent d3d2f24a6a
commit b5e9bb116f
9 changed files with 178 additions and 116 deletions

View File

@@ -270,13 +270,16 @@ impl SourcesExt for Server {
});
let source = source.with_container_notifier(notifier);
// Enregistrer la source
self.register_music_source(Arc::new(source)).await;
// Enregistrer la source (Arc pour partage avec l'API)
let source_arc = Arc::new(source);
self.register_music_source(source_arc.clone()).await;
// Initialiser les routes API Radio France
self.init_radiofrance().await.map_err(|e| {
SourceInitError::RadioFranceError(format!("Failed to init API routes: {}", e))
})?;
// Initialiser les routes API Radio France avec la source
self.init_radiofrance_with_source(source_arc)
.await
.map_err(|e| {
SourceInitError::RadioFranceError(format!("Failed to init API routes: {}", e))
})?;
tracing::info!("✅ Radio France source registered successfully");