1 个稳定版本
1.0.0 | 2020年9月8日 |
---|
#6 在 #mobc
6KB
59 行
mobc-diesel
为 Diesel 提供mobc支持,允许使用连接池。
示例
示例创建了一个在本地主机运行的 PostgreSQL 或 SQLite 数据库的连接池,然后创建了一组线程,并为每个线程从池中获取一个连接。
可执行版本在 examples/ 中,您可以使用以下命令运行: cargo run --example postgres --features "diesel/postgres"
或 cargo run --example sqlite --features "diesel/sqlite"
。
extern crate diesel;
extern crate mobc;
extern crate mobc_diesel;
extern crate tokio;
use diesel::pg::PgConnection;
use mobc_diesel::ConnectionManager;
#[tokio::main]
async fn main() {
let manager = ConnectionManager::<PgConnection>::new("postgres://127.0.0.1/");
let pool = mobc::Pool::builder().build(manager);
for _ in 0..10i32 {
let pool = pool.clone();
tokio::spawn( async move {
let connection = pool.get().await;
assert!(connection.is_ok());
});
}
}
使用 diesel master 分支
如果您想使用与 mobc-diesel 的 diesel master 分支,您必须在您的 Cargo.toml 文件中添加以下部分。如果您正在使用 workspace,则需要在 workspace 的根目录下的 Cargo.toml 中进行。
[patch.crates-io]
diesel = { git = "https://github.com/diesel-rs/diesel.git" }
diesel_infer_schema = { git = "https://github.com/diesel-rs/diesel.git" }
diesel_codegen = { git = "https://github.com/diesel-rs/diesel.git" }
依赖关系
~7MB
~123K SLoC