diff options
author | Kornel <kornel@geekhood.net> | 2020-02-26 23:57:47 +0000 |
---|---|---|
committer | Kornel <kornel@geekhood.net> | 2020-02-27 00:02:06 +0000 |
commit | 92934bf4ca8b77e803c2f95d89dbe1e6d6dc2425 (patch) | |
tree | 8dd9024a26926fbfae120bf94bd31cab374facf7 | |
parent | 8a17539edc0836610da9581706e621d59a11aea7 (diff) |
Refresh loop, log
-rw-r--r-- | kitchen_sink/src/index.rs | 2 | ||||
-rw-r--r-- | server/Cargo.toml | 2 | ||||
-rw-r--r-- | server/src/main.rs | 11 |
3 files changed, 9 insertions, 6 deletions
diff --git a/kitchen_sink/src/index.rs b/kitchen_sink/src/index.rs index 55c980d..4ec3c88 100644 --- a/kitchen_sink/src/index.rs +++ b/kitchen_sink/src/index.rs @@ -459,7 +459,7 @@ pub fn is_deprecated(name: &str) -> bool { // fundamentally unsound "str-concat" => true, // uses old winapi - "user32-sys" | "shell32-sys" | "advapi32-sys" | "gdi32-sys" | "ole32-sys" | "ws2_32-sys" | "kernel32-sys" => true, + "user32-sys" | "shell32-sys" | "advapi32-sys" | "gdi32-sys" | "ole32-sys" | "ws2_32-sys" | "kernel32-sys" | "userenv-sys" => true, _ => false, } } diff --git a/server/Cargo.toml b/server/Cargo.toml index 8b631a7..0a26c60 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crates-server" -version = "0.12.0" +version = "0.12.1" authors = ["Kornel <kornel@geekhood.net>"] edition = "2018" description = "Crates.rs web server" diff --git a/server/src/main.rs b/server/src/main.rs index 08fd6fb..51fc5e7 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -424,7 +424,7 @@ async fn handle_install(req: HttpRequest) -> Result<HttpResponse, failure::Error front_end::render_install_page(&mut page, &ver, &crates, &state.markup).await?; Ok::<_, failure::Error>((page, None)) }).await?; - Ok(serve_cached((page, 3600, false, last_mod))) + Ok(serve_cached((page, 7200, false, last_mod))) } async fn handle_crate(req: HttpRequest) -> Result<HttpResponse, failure::Error> { @@ -456,7 +456,7 @@ async fn handle_crate_reverse_dependencies(req: HttpRequest) -> Result<HttpRespo async fn handle_new_trending(req: HttpRequest) -> Result<HttpResponse, failure::Error> { let state: &AServerState = req.app_data().expect("appdata"); - Ok(serve_cached(with_file_cache(state, state.page_cache_dir.join("_new_.html"), 3*3600, { + Ok(serve_cached(with_file_cache(state, state.page_cache_dir.join("_new_.html"), 3600, { let state = state.clone(); run_timeout(60, async move { let crates = state.crates.load(); @@ -500,6 +500,7 @@ async fn with_file_cache<F: Send>(state: &AServerState, cache_file: PathBuf, cac if let Ok(_s) = state.background_job.try_acquire() { match generate.await { Ok((mut page, last_mod)) => { + eprintln!("Done refresh of {}", cache_file.display()); let timestamp = last_mod.map(|a| a.timestamp() as u32).unwrap_or(0); page.extend_from_slice(×tamp.to_le_bytes()); // The worst data format :) @@ -508,9 +509,11 @@ async fn with_file_cache<F: Send>(state: &AServerState, cache_file: PathBuf, cac } }, Err(e) => { - eprintln!("Cache pre-warm: {}", e); + eprintln!("Refresh err: {} {}", e, cache_file.display()); }, } + } else { + eprintln!("Skipped refresh of {}", cache_file.display()); } }}); } @@ -599,7 +602,7 @@ fn serve_cached((page, cache_time, refresh, last_modified): (Vec<u8>, u32, bool, }) .if_true(refresh, |h| { h.header("Refresh", "5"); - h.header("Cache-Control", format!("public, max-age={}, must-revalidate", cache_time)); + h.header("Cache-Control", "no-cache, s-maxage=4, must-revalidate"); }) .if_some(last_modified, |l, h| {h.header("Last-Modified", l.to_rfc2822());}) .content_length(page.len() as u64) |