Skip to main content

Module pool

Module pool 

Source
Expand description

Pool de conexões reutilizáveis ao servidor Firebird.

Pool mantém um conjunto de Connections ociosas prontas para uso, limitando o total de conexões simultâneas ao servidor pelo campo PoolConfig::max_size. O pool não executa ping antes de entregar uma conexão ociosa; ele só filtra conexões que já foram marcadas localmente como quebradas. Se o servidor fechar um socket em silêncio, a primeira operação real vai detectar o erro e a conexão será descartada ao retornar ao pool.

let pool = Pool::new(config, PoolConfig::default());
let mut conn = pool.get()?;   // pega do pool ou cria uma nova
conn.ping()?;                 // usa normalmente via Deref
drop(conn);                         // devolve ao pool automaticamente

§Compartilhamento

Pool é barato de clonar (Arc interno) — compartilhe o mesmo pool entre tarefas sem custo.

§Ciclo de vida

A conexão é devolvida ao pool ao cair fora de escopo. Se o chamador precisar descartar uma conexão (ex.: após um erro irrecuperável), chame PooledConnection::discard antes de deixá-la cair.

Structs§

Pool
Um pool de conexões ao Firebird. Clone livremente para compartilhar entre tarefas.
PoolConfig
Parâmetros do pool. Use Default para os valores recomendados.
PooledConnection
Guard que representa uma conexão retirada do pool.