SQLAlchemy иногда выбрасывает потерянное соединение - PullRequest
0 голосов
/ 11 февраля 2020

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 |
+-----+----------------------+--------------------------------------------------------------+---------+---------+------+----------+------------------+

Выше мой список запросов. Вы знаете, что состояние некоторого запроса - сон.

Наверное, из-за этого я думаю.

Любое предложение, очень признателен.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...