Cache-Warming beim Systemstart #21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Beim Start der Anwendung werden ALLE existierenden Feeds sofort generiert und im Cache abgelegt, sodass der erste Request auf jeden Feed bereits ein Cache-Hit ist.
Beschreibung
Cache-Warming verhindert den "Cold Start"-Effekt: Der erste Abruf eines Feeds wäre sonst langsam (DB-Query + XML-Generierung). Beim Booten werden alle Feeds aus der DB gelesen, ihre letzten
max_postsPosts abgerufen, das XML generiert und in die DashMap gepusht.Akzeptanzkriterien
pub async fn warm_cache(pool: &SqlitePool, cache: &FeedCache, base_url: &str) -> Result<CacheStats, AppError>main.rsNACH Pool-Erstellung, Migrationen und State-Aufbau aufgerufen (vor Server-Start)max_postsneuesten Postsgenerate_rss())generate_atom())[boot] Cache warmed: 12 feeds (12 rss, 12 atom)Technische Hinweise
main.rs:init_pool()sqlx::migrate!().run().awaitFeedCache::default()erstellenwarm_cache(&pool, &cache, &config.base_url).awaittracing::info!()für Logs nutzen