feat(web): add 10 second timeout layer

This commit is contained in:
2025-09-14 01:47:04 -05:00
parent 1b7d2d2824
commit 3dca896a35
3 changed files with 7 additions and 5 deletions

2
Cargo.lock generated
View File

@@ -218,7 +218,7 @@ dependencies = [
[[package]] [[package]]
name = "banner" name = "banner"
version = "0.3.3" version = "0.3.4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "banner" name = "banner"
version = "0.3.3" version = "0.3.4"
edition = "2024" edition = "2024"
default-run = "banner" default-run = "banner"
@@ -44,7 +44,7 @@ governor = "0.10.1"
once_cell = "1.21.3" once_cell = "1.21.3"
serde_path_to_error = "0.1.17" serde_path_to_error = "0.1.17"
num-format = "0.4.4" num-format = "0.4.4"
tower-http = { version = "0.6.0", features = ["fs", "cors", "trace"] } tower-http = { version = "0.6.0", features = ["fs", "cors", "trace", "timeout"] }
rust-embed = { version = "8.0", features = ["debug-embed", "include-exclude"] } rust-embed = { version = "8.0", features = ["debug-embed", "include-exclude"] }
mime_guess = "2.0" mime_guess = "2.0"
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5", features = ["derive"] }

View File

@@ -12,6 +12,7 @@ use http::header;
use serde::Serialize; use serde::Serialize;
use serde_json::{Value, json}; use serde_json::{Value, json};
use std::{collections::BTreeMap, sync::Arc, time::Duration}; use std::{collections::BTreeMap, sync::Arc, time::Duration};
use tower_http::timeout::TimeoutLayer;
use tower_http::{ use tower_http::{
classify::ServerErrorsFailureClass, classify::ServerErrorsFailureClass,
cors::{Any, CorsLayer}, cors::{Any, CorsLayer},
@@ -86,7 +87,7 @@ pub fn create_router(state: BannerState) -> Router {
router = router.fallback(fallback); router = router.fallback(fallback);
} }
router.layer( router.layer((
TraceLayer::new_for_http() TraceLayer::new_for_http()
.make_span_with(|request: &Request<Body>| { .make_span_with(|request: &Request<Body>| {
tracing::debug_span!("request", path = request.uri().path()) tracing::debug_span!("request", path = request.uri().path())
@@ -129,7 +130,8 @@ pub fn create_router(state: BannerState) -> Router {
); );
}, },
), ),
) TimeoutLayer::new(Duration::from_secs(10)),
))
} }
/// Handler that extracts request information for caching /// Handler that extracts request information for caching