我的SQLAlchemy MySQL连接总是在睡觉时奇怪吗?

时间:2012-01-11 18:42:51

标签: python mysql sqlalchemy flask

我有一个使用SQLAlchemy和MySQL的Flask Web应用程序,我已经设置了一个scopedsession()。我还有一个teardown_request处理程序,在每个请求完成后调用session.remove()。出于某种奇怪的原因,如果一天或更长时间没有在Web应用程序上发出请求,该应用程序将获得“Operationalerror:MySQL Server已经消失”。

在我的调试任务中,我查看了SHOW PROCESSLIST并看到了以下内容:

39817253 | sqladmin | my_host | kb_dev   | Sleep   |  174 |

174是我的应用程序连接“休眠”的秒数。如果应用程序没有再发出请求,它会不断计数。

似乎我的应用程序在我的请求完成后仍然保持与MySQL的连接!并且通常只有一个进程,无论我对我的应用程序发出多少请求,无论是否同时进行。

我的问题是连接是否正常“睡眠”这么长时间?我很确定延长睡眠会导致MySQL在某个超时后切断连接,这反过来导致“OperationalError:Mysql已经消失”错误。

1 个答案:

答案 0 :(得分:24)