mobc-postgres

Build Status crates.io

Documentation

Example

```rust use mobc::Pool; use std::str::FromStr; use std::time::Instant; use mobcpostgres::PgConnectionManager; use tokiopostgres::Config; use tokio_postgres::NoTls;

[tokio::main]

async fn main() { let config = Config::fromstr("postgres://user:passwd@localhost:5432").unwrap(); let manager = PgConnectionManager::new(config, NoTls); let pool = Pool::builder().maxopen(20).build(manager); const MAX: usize = 5000;

let now = Instant::now();
let (tx, mut rx) = tokio::sync::mpsc::channel::<usize>(16);
for i in 0..MAX {
    let pool = pool.clone();
    let mut tx_c = tx.clone();
    tokio::spawn(async move {
        let client = pool.get().await.unwrap();
        let rows = client.query("SELECT 1 + 2", &[]).await.unwrap();
        let value: i32 = rows[0].get(0);
        assert_eq!(value, 3);
        tx_c.send(i).await.unwrap();
    });
}
for _ in 0..MAX {
    rx.recv().await.unwrap();
}

println!("cost: {:?}", now.elapsed());

} ```