rust rocket_db_pools:获取数据库连接并传递给其他函数

vm0i2vca  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(200)

我正在运行一个Rocket服务器,并使用rocket_db_pools进行postgres连接。我想在API调用的上下文中在同一数据库中执行多个查询-就像这样。

#[get("/fetch_data_by_ids?<data_ids>")]
async fn fetch_data_by_ids(data_ids: Vec<&str>, mut db: Connection<DatabaseConnection>) -> Json<Vec<ProcessedDocument>> {
    let connection_one = db.clone();
    let connection_two = db.clone();
    let data_obj_one = do_a_database_process_one(connection_one).await;
    let data_obj_two = do_a_database_process_two(connection_two).await;
}

字符串
是否可以在一个路由处理程序中请求多个连接?

piztneat

piztneat1#

可以通过以下方式获得到同一DB的多个连接:
1.创建多个单元结构,其中多个单元结构指向同一DB
1.在Rocket.toml中创建多个与步骤1相对应的连接字符串条目
1.将这些多个连接作为args传递给Rocket注解的方法,并在Rocket launch时attach()多个连接。
这是一个很好的解决方案,但我目前唯一的解决方案。

相关问题