我正在编写多线程应用程序,使用的是烧瓶+ SQL + MySQL。
SQL炼金术设置:
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_POOL_SIZE = 200
SQLALCHEMY_MAX_OVERFLOW = 50
SQLALCHEMY_POOL_RECYCLE = 5我的应用程序可以同时运行多达300个线程。在每个线程中,都有如下所示的DB用法:
# 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也会死掉。
如何正确地管理这些连接?
发布于 2017-12-20 03:43:26
你可以用这个方法。
首先,转到mysql服务器并更改max_connections选项。
设置全局max_connections=1000;
https://stackoverflow.com/questions/38684508
复制相似问题