Skip to content

Initializer

init(source:maxConnections:requestTimeout:pruneInterval:maxIdleTimeBeforePruning:logger:on:)

init(source: Source, maxConnections: Int, requestTimeout: TimeAmount = .seconds(10), pruneInterval: TimeAmount?, maxIdleTimeBeforePruning: TimeAmount = .seconds(120), logger: Logger = .init(label: "codes.vapor.pool"), on eventLoop: any EventLoop)

Parameters

source

Creates new connections when needed.

maxConnections

Limits the number of connections that can be open. Defaults to 1.

requestTimeout

Timeout for requesting a new connection. Defaults to 10 seconds.

pruneInterval

How often to check for and prune idle database connections. If nil (the default), no pruning is performed.

maxIdleTimeBeforePruning

How long a connection may remain idle before being pruned, if pruning is enabled. Defaults to 2 minutes. Ignored if pruneInterval is nil.

logger

For lifecycle logs.

Discussion

let pool = EventLoopConnectionPool(...)
pool.withConnection(...) { conn in
    // use conn
}