Python 处理'的正确和最佳方式;数据库已锁定';twisted.enterprise.adbapi出现错误

Python 处理'的正确和最佳方式;数据库已锁定';twisted.enterprise.adbapi出现错误,python,multithreading,sqlite,twisted,Python,Multithreading,Sqlite,Twisted,我将twisted.enterprise.adbapi与sqlite3数据库适配器和“runInteraction()”一起使用 我不断收到“sqlite3.OperationalError:数据库已锁定”错误。 我理解这个问题,多个线程试图访问数据库,但它已经被一个线程锁定,这会引发此异常。我的问题是,处理这个问题的标准/正确方法是什么 我已经在这里找到了答案: 但是,将连接池限制为一个连接是否会降低整个应用程序处理长查询的速度? 但它仍然不能解决从两个应用程序访问数据库的问题 你能想出更好

我将twisted.enterprise.adbapi与sqlite3数据库适配器和“runInteraction()”一起使用

我不断收到“sqlite3.OperationalError:数据库已锁定”错误。 我理解这个问题,多个线程试图访问数据库,但它已经被一个线程锁定,这会引发此异常。我的问题是,处理这个问题的标准/正确方法是什么

我已经在这里找到了答案:

但是,将连接池限制为一个连接是否会降低整个应用程序处理长查询的速度? 但它仍然不能解决从两个应用程序访问数据库的问题

你能想出更好的办法吗

国王问候你,弗洛里安

但是,将连接池限制为一个连接是否会降低整个应用程序处理长查询的速度

SQLite不允许并发连接;不是来自同一过程,也不是来自不同过程;它在数据库中维护一个锁定标志,专门防止其他进程在一个进程仍在使用该数据库文件时使用该数据库文件。如果您的查询速度较慢,它将阻止其他连接,不管它们是否正在进行


如果这是一个问题,解决方案很简单,不要使用sqlite。

所以是的,我认为你是完全正确的。不知道为什么我在任何地方都找不到这些信息,但解决方案很简单:我将切换到另一个rdbms。谢谢