如何使Flask SQLAlchemy使用支持usleep()的自编译sqlite?在
我使用Flask 0.10.1
和Flask-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,以减少锁定超时的概率。怎么能做到呢?
目前没有回答
相关问题 更多 >
编程相关推荐