gpt4 book ai didi

Python、SQLite 和线程

转载 作者:IT王子 更新时间:2023-10-29 06:23:44 24 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序将通过 HTTP 从多个位置收集数据,在本地缓存数据,然后通过 HTTP 提供数据。

所以我在看下面的内容。我的应用程序将首先创建几个线程,这些线程将以指定的时间间隔收集数据并将该数据缓存到本地 SQLite 数据库中。

然后在主线程中启动一个 CherryPy 应用程序,它将查询该 SQLite 数据库并提供数据。

我的问题是:如何处理从我的线程和 CherryPy 应用程序到 SQLite 数据库的连接?

如果我按线程连接到数据库,我是否也能够创建/使用内存数据库?

最佳答案

简短回答:不要在线程应用程序中使用 Sqlite3。

Sqlite3 数据库在大小方面可以很好地扩展,但在并发性方面却非常糟糕。您会被“数据库已锁定”错误所困扰。

如果这样做,您将需要每个线程一个连接,并且您必须确保这些连接自行清理。传统上,这是使用线程本地 session 处理的,并且(例如)使用 SQLAlchemy 的 ScopedSession 执行得相当好。如果我是你,我会使用它,即使你没有使用 SQLAlchemy ORM 功能。

关于Python、SQLite 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/524797/

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