Flask,SQLAlchemy和多线程:MySQL连接太多

问题描述 投票:1回答:1

我正在使用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将死亡。

如何正确管理这种连接?

python mysql multithreading flask sqlalchemy
1个回答
0
投票

你可以用这种方式。

首先转到mysql服务器并更改max_connections选项。

设置全局max_connections = 1000;

© www.soinside.com 2019 - 2024. All rights reserved.