在SQLAlchemy中启用usleep()支持

2024-05-28 18:44:50 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使Flask SQLAlchemy使用支持usleep()的自编译sqlite?在

我使用Flask 0.10.1Flask-SQLAlchemy 2.1与{}一起使用,以提供在Ubuntu 14.04中运行的微服务。作为我的应用程序的数据库后端,我使用具有默认设置的SQLite:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/my-database.db'

安装了SQLite3.3版本。在

在操作我的服务的过程中,我偶尔会看到以下错误:

^{pr2}$

microservice在很长一段时间内不支持任何数据库连接,所以一开始这个问题对我来说是莫名其妙的。我做了一些研究,发现了这篇文章the SQLite lock timeout nightmare。它表明SQLite可以在没有usleep()支持的情况下编译,因此可能只会尝试以完整的秒间隔锁定数据库。假设SQLite的默认锁定超时是5秒,我们基本上有5次尝试在数据库连接失败之前尝试它。Inspection of my SQLite compile flags还显示没有设置HAVE\u USLEEP。另外,SQLAlchemy不允许为SQLite设置不同的池超时,因为使用了NullPool我想用一个支持usleep()的版本来代替SQLite,以减少锁定超时的概率。怎么能做到呢?


Tags: 版本config数据库app应用程序flasksqlitesqlalchemy

热门问题