概述
遇到这种情况,小记一下。
发现服务运行得好好的,连接数据库的时候隔一段时间就会报数据库连接异常,看了一下日志报一个“error during Connection reset by peer”——报错十分直观 ,就是数据库主动断开了连接。
查询发现sqlserver设置了X分钟的超时时间,如果超过这个时间数据库连接线程没有任何操作,sqlserver会主动把连接断开以节约资源。所以,如果数据库操作完成,应该由应用程序把数据库连接主动断开。
sqlalchemy是维护了一个数据库连接池,因此,只要程序还在运行,连接池里的默认是有保持与数据库的长连接线程存在。
因此,我们把sqlalchemy里的数据库连接时间设置小于X分钟。设置方法为SQLALCHEMY_POOL_RECYCLE=XXX(这里的单位是秒)
相关参数:
SQLALCHEMY_POOL_RECYCLE:自动回收数据库连接的秒数。
SQLALCHEMY_POOL_SIZE:数据库连接池的大小,默认为5
SQLALCHEMY_POOL_TIMEOUT:指定数据库连接池的超时时间,默认为10秒。
参考资料:
http://www.pythondoc.com/flask-sqlalchemy/config.html 这个是sqlalchemy相关参数的解析,还很详细的
最后
以上就是感动口红为你收集整理的sqlalchemy数据库连接异常的全部内容,希望文章能够帮你解决sqlalchemy数据库连接异常所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复