You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Opening a new database connection every time one is needed is both inefficient
and can lead to resource exhaustion under high traffic conditions. A connection
pool maintains a set of open connections to a database, handing them out for
repeated use.
r2d2 is agnostic to the connection type it is managing. Implementors of the
ManageConnection trait provide the database-specific logic to create and
check the health of connections.
A (possibly not exhaustive) list of adaptors for different backends:
use std::thread;externcrate r2d2;externcrate r2d2_foodb;fnmain(){let manager = r2d2_foodb::FooConnectionManager::new("localhost:1234");let pool = r2d2::Pool::builder().max_size(15).build(manager).unwrap();for _ in0..20{let pool = pool.clone();
thread::spawn(move || {let conn = pool.get().unwrap();// use the connection// it will be returned to the pool when it falls out of scope.})}}
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you shall be dual licensed as above, without any
additional terms or conditions.