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.
- Pool
Config - Parâmetros do pool. Use
Defaultpara os valores recomendados. - Pooled
Connection - Guard que representa uma conexão retirada do pool.