gpt4 book ai didi

sqlite - 如何从多个线程通过 rusqlite 使用 SQLite?

转载 作者:行者123 更新时间:2023-12-03 11:45:14 30 4
gpt4 key购买 nike

有很多文章解释了 SQLite 的多线程访问问题,但我找不到任何简单的解决方案。如何从例如访问 SQLite多个线程同时工作的 Web 服务器?

来源(仍然没有解释任何简单的解决方法):

最佳答案

您可以使用 r2d2-sqlite 连接池 + std::sync::Arc 对 SQLite 进行多线程访问。示例:

[dependencies]
r2d2_sqlite = "0.16.0"
r2d2 = "0.8.8"

在 Rust 中:

fn main() {
let sqlite_file = "my.db";
let sqlite_connection_manager = SqliteConnectionManager::file(sqlite_file);
let sqlite_pool = r2d2::Pool::new(sqlite_connection_manager)
.expect("Failed to create r2d2 SQLite connection pool");
let pool_arc = Arc::new(sqlite_pool);

let pool = pool_arc.clone();
whatever.method(move || {
let connection = pool.get();
// ...
});

let pool = pool_arc.clone();
whatever.method(move || {
let connection = pool.get();
// ...
});
}

关于sqlite - 如何从多个线程通过 rusqlite 使用 SQLite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62560396/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com