pub struct PoolConfig {
pub host: String,
pub port: u16,
pub user: String,
pub database: String,
pub password: Option<String>,
pub max_connections: usize,
pub min_connections: usize,
pub idle_timeout: Duration,
pub acquire_timeout: Duration,
pub connect_timeout: Duration,
pub max_lifetime: Option<Duration>,
pub test_on_acquire: bool,
}Expand description
Configuration for a PostgreSQL connection pool.
Use the builder pattern to customise settings:
use std::time::Duration;
use qail_pg::driver::pool::PoolConfig;
let config = PoolConfig::new("localhost", 5432, "app", "mydb")
.password("secret")
.max_connections(20)
.acquire_timeout(Duration::from_secs(5));Fields§
§host: StringPostgreSQL server hostname or IP address.
port: u16PostgreSQL server port (default: 5432).
user: StringDatabase role / user name.
database: StringTarget database name.
password: Option<String>Optional password for authentication.
max_connections: usizeHard upper limit on simultaneous connections (default: 10).
min_connections: usizeMinimum idle connections kept warm in the pool (default: 1).
idle_timeout: DurationClose idle connections after this duration (default: 10 min).
acquire_timeout: DurationMaximum time to wait when acquiring a connection (default: 30s).
connect_timeout: DurationTCP connect timeout for new connections (default: 10s).
max_lifetime: Option<Duration>Optional maximum lifetime of any connection in the pool.
test_on_acquire: boolWhen true, run a health check (SELECT 1) before handing out a connection.
Implementations§
Source§impl PoolConfig
impl PoolConfig
Sourcepub fn new(host: &str, port: u16, user: &str, database: &str) -> Self
pub fn new(host: &str, port: u16, user: &str, database: &str) -> Self
Create a new pool configuration with sensible defaults.
§Arguments
host— PostgreSQL server hostname or IP.port— TCP port (typically 5432).user— PostgreSQL role name.database— Target database name.
Sourcepub fn max_connections(self, max: usize) -> Self
pub fn max_connections(self, max: usize) -> Self
Set maximum simultaneous connections.
Sourcepub fn min_connections(self, min: usize) -> Self
pub fn min_connections(self, min: usize) -> Self
Set minimum idle connections.
Sourcepub fn idle_timeout(self, timeout: Duration) -> Self
pub fn idle_timeout(self, timeout: Duration) -> Self
Set idle timeout (connections idle longer than this are closed).
Sourcepub fn acquire_timeout(self, timeout: Duration) -> Self
pub fn acquire_timeout(self, timeout: Duration) -> Self
Set acquire timeout (max wait time when getting a connection).
Sourcepub fn connect_timeout(self, timeout: Duration) -> Self
pub fn connect_timeout(self, timeout: Duration) -> Self
Set connect timeout (max time to establish new connection).
Sourcepub fn max_lifetime(self, lifetime: Duration) -> Self
pub fn max_lifetime(self, lifetime: Duration) -> Self
Set maximum lifetime of a connection before recycling.
Sourcepub fn test_on_acquire(self, enabled: bool) -> Self
pub fn test_on_acquire(self, enabled: bool) -> Self
Enable connection validation on acquire.
Sourcepub fn from_qail_config(qail: &QailConfig) -> PgResult<Self>
pub fn from_qail_config(qail: &QailConfig) -> PgResult<Self>
Create a PoolConfig from a centralized QailConfig.
Parses postgres.url for host/port/user/database/password
and applies pool tuning from [postgres] section.
Trait Implementations§
Source§impl Clone for PoolConfig
impl Clone for PoolConfig
Source§fn clone(&self) -> PoolConfig
fn clone(&self) -> PoolConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more