我正在使用 Flask + SQL Alchemy + MySQL 编写多线程应用程序。
SQL Alchemy 设置:
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_POOL_SIZE = 200
SQLALCHEMY_MAX_OVERFLOW = 50
SQLALCHEMY_POOL_RECYCLE = 5
我的应用最多可以同时运行 300 个线程。在每个线程中都有一些数据库使用,例如:
# task == my model
db.session.add(task)
task.progress += 1
db.session.commit()
还有一些更复杂的代码
工作 3-5 分钟后,由于连接过多,我的 MySQL 将消失。 在每个线程完成他的工作后,我已经尝试了 db.session.close() 和 db.session.bind.dispose()。但这无济于事,在 3-5 分钟内将有 200 多个连接,MySQL 将死掉。
如何正确管理此连接?
最佳答案
你可以这样使用。
首先转到您的 mysql 服务器并更改 max_connections 选项。
设置全局max_connections=1000;
关于python - Flask、SQLAlchemy 和多线程 : MySQL too many connections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684508/