我有一个python Web应用程序,其中,应用程序连接到远程数据库。
应用:烧瓶+ uwsgi + nginx。
数据库:mysql(远程)。 该应用程序公开了从远程数据库提供数据的rest api。
db恢复后,每天都会在远程数据库中重启mysql服务。我的应用程序和远程数据库之间的连接中断,它开始抛出错误消息
MySQL server has gone away.
直到我在我的应用程序中手动重启uwsgi服务
sudo service uwsgi restart
远程数据库中的mysql服务重启和我系统中的uwsgi服务重启之间的持续时间是停机时间。
重新启动mysql服务后,我的应用程序是否可以重新建立连接?
请建议任何解决方案?
答案 0 :(得分:0)
这实际上取决于您连接数据库的方式
如果您使用的是流行的ORM:
SQLAlchemy ORM
engine = create_engine('mysql + mysqldb:// ...',pool_recycle = 3600)
如文档here
Peewee
@app.before_request
def _db_connect():
database.connect()
@app.teardown_request
def _db_close(exc):
if not database.is_closed():
database.close()
如文档here
问题在mysql文档here
中有详细解释