pub struct PoolConfig {Show 13 fields
pub max_size: u32,
pub min_idle: u32,
pub acquire_timeout: Duration,
pub idle_timeout: Duration,
pub max_lifetime: Duration,
pub connection_timeout: Duration,
pub tls: Option<TlsConfig>,
pub query_timeout: Option<Duration>,
pub max_rows: Option<usize>,
pub memory_limit: Option<usize>,
pub on_event: Option<Arc<dyn Fn(PoolEvent) + Send + Sync>>,
pub test_before_acquire: bool,
pub prewarm: bool,
}Fields§
§max_size: u32§min_idle: u32§acquire_timeout: Duration§idle_timeout: Duration§max_lifetime: Duration§connection_timeout: Duration§tls: Option<TlsConfig>TLS 配置
query_timeout: Option<Duration>SQL 执行超时(默认 30 秒)
max_rows: Option<usize>单次查询最大返回行数(默认无限制)
memory_limit: Option<usize>内存使用上限(字节,默认无限制)
on_event: Option<Arc<dyn Fn(PoolEvent) + Send + Sync>>连接池事件回调
test_before_acquire: boolacquire 时是否执行 ping 验证连接存活(默认 false)。
开启后,从空闲队列取出的连接会先执行 ping() 验证网络连通性,
ping 失败的连接会被丢弃并重新 acquire。
注意:开启此选项会增加每次 acquire 的延迟(一次额外的网络 RTT)。 适用于 DB 可能重启且不能容忍首次查询失败的场景。
prewarm: bool连接池预热:启用后池创建时立即建立 min_idle 个连接(默认 false)。
预热后首次 acquire 延迟 < 10ms(对比冷启动 < 100ms)。
§示例
ⓘ
let config = PoolConfig::default().with_prewarm(true);
let pool = Pool::new(config, factory).await?;
// 此时池中已有 min_idle 个连接Implementations§
Source§impl PoolConfig
impl PoolConfig
Sourcepub fn with_prewarm(self, prewarm: bool) -> PoolConfig
pub fn with_prewarm(self, prewarm: bool) -> PoolConfig
设置预热标志(链式调用)
Trait Implementations§
Source§impl Clone for PoolConfig
impl Clone for PoolConfig
Source§fn clone(&self) -> PoolConfig
fn clone(&self) -> PoolConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for PoolConfig
impl Default for PoolConfig
Source§fn default() -> PoolConfig
fn default() -> PoolConfig
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for PoolConfig
impl !UnwindSafe for PoolConfig
impl Freeze for PoolConfig
impl Send for PoolConfig
impl Sync for PoolConfig
impl Unpin for PoolConfig
impl UnsafeUnpin for PoolConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more