首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过多线程通过rusqlite使用SQLite?

如何通过多线程通过rusqlite使用SQLite?
EN

Stack Overflow用户
提问于 2020-06-24 17:02:45
回答 1查看 1.5K关注 0票数 3

有许多文章解释了使用SQLite进行多线程访问的问题,但我找不到任何简单的解决方案。如何从多个线程并发工作的web服务器访问SQLite?

资料来源(仍然无法解释任何简单的解决办法):

EN

回答 1

Stack Overflow用户

发布于 2020-06-24 17:02:45

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

代码语言:javascript
复制
[dependencies]
r2d2_sqlite = "0.16.0"
r2d2 = "0.8.8"

在锈病中:

代码语言:javascript
复制
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();
        // ...
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62560396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档