ENV
- Flask
- SQLAlchemy
- MySQL
- Gunicorn
Первый, Я не использовал flask -sqlalchemy и просто использовал SQLAlchemy.
engine = create_engine(get_config().db_url)
session = scoped_session(
sessionmaker(
autocommit=False,
autoflush=False,
bind=engine,
)
)
Base = declarative_base()
Это мой объект сеанса, и я использовал его в других модулях через сеанс импорта.
@app.teardown_appcontext
def shutdown_session(response):
session.remove()
return response
И Я запустил session.remove () на ловушке teardown_appcontext.
Итак, сессия будет уничтожена.
Проблема в том, что иногда она выдает ошибки ниже.
(pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')
(pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))")
mysql> show processlist;
+-----+----------------------+--------------------------------------------------------------+---------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+----------------------+--------------------------------------------------------------+---------+---------+------+----------+------------------+
| 3 | rdsadmin | localhost:12345 | NULL | Sleep | 4 | | NULL |
| 985 | hide | 1.123.123.12:12345 | xxxxxxx | Sleep | 101 | | NULL |
| 986 | hide | 1.123.123.12:12345 | xxxxxxx | Sleep | 102 | | NULL |
| 988 | hide | 1.123.123.12:12345 | xxx | Query | 0 | starting | show processlist |
+-----+----------------------+--------------------------------------------------------------+---------+---------+------+----------+------------------+
Выше мой список запросов. Вы знаете, что состояние некоторого запроса - сон.
Наверное, из-за этого я думаю.
Любое предложение, очень признателен.
Спасибо.