mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 17:19:15 +08:00
refactor: Added min idle and max lifetime for database config (#2900)
Co-authored-by: akshay.s <akshay.s@juspay.in> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gnanasundari24 <118818938+Gnanasundari24@users.noreply.github.com> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -20,6 +20,7 @@ port = 5432
|
||||
dbname = "hyperswitch_db"
|
||||
pool_size = 5
|
||||
connection_timeout = 10
|
||||
min_idle = 2
|
||||
|
||||
[replica_database]
|
||||
username = "db_user"
|
||||
|
||||
@ -30,6 +30,8 @@ impl Default for super::settings::Database {
|
||||
pool_size: 5,
|
||||
connection_timeout: 10,
|
||||
queue_strategy: Default::default(),
|
||||
min_idle: None,
|
||||
max_lifetime: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,6 +64,8 @@ impl KmsDecrypt for settings::Database {
|
||||
pool_size: self.pool_size,
|
||||
connection_timeout: self.connection_timeout,
|
||||
queue_strategy: self.queue_strategy.into(),
|
||||
min_idle: self.min_idle,
|
||||
max_lifetime: self.max_lifetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -517,6 +517,8 @@ pub struct Database {
|
||||
pub pool_size: u32,
|
||||
pub connection_timeout: u64,
|
||||
pub queue_strategy: QueueStrategy,
|
||||
pub min_idle: Option<u32>,
|
||||
pub max_lifetime: Option<u64>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Clone, Default)]
|
||||
@ -548,6 +550,8 @@ impl From<Database> for storage_impl::config::Database {
|
||||
pool_size: val.pool_size,
|
||||
connection_timeout: val.connection_timeout,
|
||||
queue_strategy: val.queue_strategy.into(),
|
||||
min_idle: val.min_idle,
|
||||
max_lifetime: val.max_lifetime,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,4 +10,6 @@ pub struct Database {
|
||||
pub pool_size: u32,
|
||||
pub connection_timeout: u64,
|
||||
pub queue_strategy: bb8::QueueStrategy,
|
||||
pub min_idle: Option<u32>,
|
||||
pub max_lifetime: Option<u64>,
|
||||
}
|
||||
|
||||
@ -88,8 +88,10 @@ pub async fn diesel_make_pg_pool(
|
||||
let manager = async_bb8_diesel::ConnectionManager::<PgConnection>::new(database_url);
|
||||
let mut pool = bb8::Pool::builder()
|
||||
.max_size(database.pool_size)
|
||||
.min_idle(database.min_idle)
|
||||
.queue_strategy(database.queue_strategy)
|
||||
.connection_timeout(std::time::Duration::from_secs(database.connection_timeout));
|
||||
.connection_timeout(std::time::Duration::from_secs(database.connection_timeout))
|
||||
.max_lifetime(database.max_lifetime.map(std::time::Duration::from_secs));
|
||||
|
||||
if test_transaction {
|
||||
pool = pool.connection_customizer(Box::new(TestTransaction));
|
||||
|
||||
Reference in New Issue
Block a user