17个版本
0.8.0 | 2023年1月22日 |
---|---|
0.7.0 | 2021年1月13日 |
0.6.0 | 2020年11月14日 |
0.5.0 | 2020年1月9日 |
0.3.0 |
|
#2357 in 数据库接口
每月下载量 391
在 2 crates 中使用
13KB
mobc-postgres
示例
use mobc::Pool;
use std::str::FromStr;
use std::time::Instant;
use mobc_postgres::PgConnectionManager;
use tokio_postgres::Config;
use tokio_postgres::NoTls;
#[tokio::main]
async fn main() {
let config = Config::from_str("postgres://user:passwd@localhost:5432").unwrap();
let manager = PgConnectionManager::new(config, NoTls);
let pool = Pool::builder().max_open(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());
}
依赖
~9–20MB
~283K SLoC