Skip to content

Commit 6950bdf

Browse files
authored
config/database_pools: Extract magic numbers into named constants (#11185)
1 parent 70d28df commit 6950bdf

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/config/database_pools.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ use crates_io_env_vars::{required_var, var, var_parsed};
1818
use secrecy::SecretString;
1919
use std::time::Duration;
2020

21+
const DEFAULT_POOL_SIZE: usize = 3;
22+
const DEFAULT_HELPER_THREADS: usize = 3;
23+
const DEFAULT_TCP_TIMEOUT: Duration = Duration::from_secs(15);
24+
const DEFAULT_CONNECTION_TIMEOUT: Duration = Duration::from_secs(30);
25+
2126
pub struct DatabasePools {
2227
/// Settings for the primary database. This is usually writeable, but will be read-only in
2328
/// some configurations.
@@ -58,8 +63,6 @@ impl DatabasePools {
5863
}
5964

6065
impl DatabasePools {
61-
const DEFAULT_POOL_SIZE: usize = 3;
62-
6366
/// Load settings for one or more database pools from the environment
6467
///
6568
/// # Panics
@@ -71,24 +74,26 @@ impl DatabasePools {
7174
let read_only_mode = var("READ_ONLY_MODE")?.is_some();
7275

7376
let primary_async_pool_size =
74-
var_parsed("DB_PRIMARY_ASYNC_POOL_SIZE")?.unwrap_or(Self::DEFAULT_POOL_SIZE);
77+
var_parsed("DB_PRIMARY_ASYNC_POOL_SIZE")?.unwrap_or(DEFAULT_POOL_SIZE);
7578
let replica_async_pool_size =
76-
var_parsed("DB_REPLICA_ASYNC_POOL_SIZE")?.unwrap_or(Self::DEFAULT_POOL_SIZE);
79+
var_parsed("DB_REPLICA_ASYNC_POOL_SIZE")?.unwrap_or(DEFAULT_POOL_SIZE);
7780

7881
let primary_min_idle = var_parsed("DB_PRIMARY_MIN_IDLE")?;
7982
let replica_min_idle = var_parsed("DB_REPLICA_MIN_IDLE")?;
8083

81-
let tcp_timeout = var_parsed("DB_TCP_TIMEOUT_MS")?.unwrap_or(15 * 1000);
82-
let tcp_timeout = Duration::from_millis(tcp_timeout);
84+
let tcp_timeout = var_parsed("DB_TCP_TIMEOUT_MS")?
85+
.map(Duration::from_millis)
86+
.unwrap_or(DEFAULT_TCP_TIMEOUT);
8387

84-
let connection_timeout = var_parsed("DB_TIMEOUT")?.unwrap_or(30);
85-
let connection_timeout = Duration::from_secs(connection_timeout);
88+
let connection_timeout = var_parsed("DB_TIMEOUT")?
89+
.map(Duration::from_millis)
90+
.unwrap_or(DEFAULT_CONNECTION_TIMEOUT);
8691

8792
// `DB_TIMEOUT` currently configures both the connection timeout and
8893
// the statement timeout, so we can copy the parsed connection timeout.
8994
let statement_timeout = connection_timeout;
9095

91-
let helper_threads = var_parsed("DB_HELPER_THREADS")?.unwrap_or(3);
96+
let helper_threads = var_parsed("DB_HELPER_THREADS")?.unwrap_or(DEFAULT_HELPER_THREADS);
9297

9398
let enforce_tls = base.env == Env::Production;
9499

0 commit comments

Comments
 (0)