From f51fcce2983f9f505b4207c38c1e669523714f8d Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Tue, 5 May 2020 14:16:18 +0900 Subject: [PATCH 1/4] Make env DB_MAX_SIZE and DB_MIN_IDLE recognizable --- plume-models/src/config.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plume-models/src/config.rs b/plume-models/src/config.rs index 40cece6d..e5cec580 100644 --- a/plume-models/src/config.rs +++ b/plume-models/src/config.rs @@ -11,6 +11,8 @@ pub struct Config { pub base_url: String, pub database_url: String, pub db_name: &'static str, + pub db_max_size: Option, + pub db_min_idle: Option, pub search_index: String, pub rocket: Result, pub logo: LogoConfig, @@ -193,6 +195,11 @@ lazy_static! { var("ROCKET_PORT").unwrap_or_else(|_| "7878".to_owned()) )), db_name: DB_NAME, + db_max_size: var("DB_MAX_SIZE").map_or(None, |s| Some( + s.parse::() + .expect("Couldn't parse DB_MAX_SIZE into u32") + )), + db_min_idle: var("DB_MIN_IDLE").map_or(None, |s| s.parse::().ok()), #[cfg(feature = "postgres")] database_url: var("DATABASE_URL") .unwrap_or_else(|_| format!("postgres://plume:plume@localhost/{}", DB_NAME)), -- 2.38.5 From 924faddfcedbb15d8a0d9a1f0efc04de45dfca21 Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Tue, 5 May 2020 15:28:49 +0900 Subject: [PATCH 2/4] Make database max size and minimum idle configurable --- src/main.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) mode change 100644 => 100755 src/main.rs diff --git a/src/main.rs b/src/main.rs old mode 100644 new mode 100755 index 5016e982..ed203049 --- a/src/main.rs +++ b/src/main.rs @@ -55,10 +55,13 @@ fn init_pool() -> Option { } let manager = ConnectionManager::::new(CONFIG.database_url.as_str()); - let pool = DbPool::builder() + let mut builder = DbPool::builder() .connection_customizer(Box::new(PragmaForeignKey)) - .build(manager) - .ok()?; + .min_idle(CONFIG.db_min_idle); + if let Some(max_size) = CONFIG.db_max_size { + builder = builder.max_size(max_size); + }; + let pool = builder.build(manager).ok()?; Instance::cache_local(&pool.get().unwrap()); Some(pool) } -- 2.38.5 From e57296a9fbc8e101c0b834686a5084da997d519b Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Wed, 6 May 2020 03:45:38 +0900 Subject: [PATCH 3/4] Restore file permission --- src/main.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/main.rs diff --git a/src/main.rs b/src/main.rs old mode 100755 new mode 100644 -- 2.38.5 From f452a07d8557c2385fb3b6623d512abcf4467307 Mon Sep 17 00:00:00 2001 From: Kitaiti Makoto Date: Wed, 6 May 2020 07:11:10 +0900 Subject: [PATCH 4/4] Fail fast --- plume-models/src/config.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plume-models/src/config.rs b/plume-models/src/config.rs index e5cec580..03e08a1b 100644 --- a/plume-models/src/config.rs +++ b/plume-models/src/config.rs @@ -199,7 +199,10 @@ lazy_static! { s.parse::() .expect("Couldn't parse DB_MAX_SIZE into u32") )), - db_min_idle: var("DB_MIN_IDLE").map_or(None, |s| s.parse::().ok()), + db_min_idle: var("DB_MIN_IDLE").map_or(None, |s| Some( + s.parse::() + .expect("Couldn't parse DB_MIN_IDLE into u32") + )), #[cfg(feature = "postgres")] database_url: var("DATABASE_URL") .unwrap_or_else(|_| format!("postgres://plume:plume@localhost/{}", DB_NAME)), -- 2.38.5