diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs index 181f6d7bbd..60ad04dede 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_featured_media_files_handler.rs @@ -191,6 +191,8 @@ pub async fn list_featured_media_files_handler( .ok() .flatten(); + let mut is_from_cache = maybe_cached_results.is_some(); + let results_page = match maybe_cached_results { Some(cached_results) => cached_results, None => database_lookup(&query, &server_state).await?, @@ -291,7 +293,14 @@ pub async fn list_featured_media_files_handler( let body = serde_json::to_string(&response) .map_err(|e| ListFeaturedMediaFilesError::ServerError)?; - Ok(HttpResponse::Ok() + let mut response_builder = HttpResponse::Ok(); + + if is_from_cache { + // NB: Temporary debugging + response_builder.insert_header(("x-sieve", "true")); + } + + Ok(response_builder .content_type("application/json") .body(body)) } diff --git a/crates/service/web/storyteller_web/src/main.rs b/crates/service/web/storyteller_web/src/main.rs index ac1232db22..14a637c407 100644 --- a/crates/service/web/storyteller_web/src/main.rs +++ b/crates/service/web/storyteller_web/src/main.rs @@ -429,7 +429,9 @@ async fn main() -> AnyhowResult<()> { easyenv::get_env_duration_seconds_or_default( "QUEUE_STATS_CACHE_TTL_SECONDS", Duration::from_secs(60))), - featured_media_files_sieve: ArcSieve::with_capacity(100)?, + featured_media_files_sieve: ArcSieve::with_capacity( + easyenv::get_env_num("FEATURED_MEDIA_FILES_CACHE_SIZE", 25)? + )?, } }, ip_ban_list, diff --git a/crates/service/web/storyteller_web/src/state/server_state.rs b/crates/service/web/storyteller_web/src/state/server_state.rs index 32444876ce..25e3f87306 100644 --- a/crates/service/web/storyteller_web/src/state/server_state.rs +++ b/crates/service/web/storyteller_web/src/state/server_state.rs @@ -195,6 +195,7 @@ pub struct EphemeralInMemoryCaches { pub leaderboard: SingleItemTtlCache, + /// Cache of featured media files pub featured_media_files_sieve: ArcSieve, }