pub struct Pool { /* private fields */ }Expand description
连接池核心实现
Implementations§
Source§impl Pool
impl Pool
Sourcepub fn new(
config: PoolConfig,
factory: Arc<dyn ConnectionFactory>,
) -> Result<Self, PoolError>
pub fn new( config: PoolConfig, factory: Arc<dyn ConnectionFactory>, ) -> Result<Self, PoolError>
创建连接池
L-5 修复:补充示例文档
§示例
ⓘ
use sz_orm_core::pool::{Pool, PoolConfig, PoolConfigBuilder, ConnectionFactory};
use std::sync::Arc;
struct MyFactory;
impl ConnectionFactory for MyFactory {
// ...
}
let config = PoolConfigBuilder::new()
.max_size(10)
.acquire_timeout(std::time::Duration::from_secs(30))
.build();
let pool = Pool::new(config, Arc::new(MyFactory))?;Sourcepub fn config(&self) -> &PoolConfig
pub fn config(&self) -> &PoolConfig
获取配置
Sourcepub async fn acquire(&self) -> Result<PooledConnection, PoolError>
pub async fn acquire(&self) -> Result<PooledConnection, PoolError>
Sourcepub async fn release(&self, pooled: PooledConnection)
pub async fn release(&self, pooled: PooledConnection)
释放连接回池中 如果池已关闭或连接已断开,则直接关闭连接而不是放回池中。
接收 PooledConnection 以保留原始 created_at,避免 max_lifetime
在每次归还后被重置(Critical bug fix)。
Sourcepub async fn status(&self) -> PoolStatus
pub async fn status(&self) -> PoolStatus
获取池状态
Sourcepub async fn close_all(&self)
pub async fn close_all(&self)
关闭所有空闲连接,并标记池为已关闭 注意:已借出未归还的连接不受影响,但归还时会被直接关闭; 同时 close_all 后的新 acquire 也会被拒绝。
Sourcepub async fn health_check(&self) -> u32
pub async fn health_check(&self) -> u32
Auto Trait Implementations§
impl !Freeze for Pool
impl !RefUnwindSafe for Pool
impl !UnwindSafe for Pool
impl Send for Pool
impl Sync for Pool
impl Unpin for Pool
impl UnsafeUnpin for Pool
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