Каждый раз, когда я перезапускаю службу mysql
, мое приложение получает следующую ошибку при любом запросе:
result = self._query(query)
File "/usr/local/lib/python3.6/site-packages/pymysql/cursors.py", line 328, in _query
conn.query(q)
File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 516, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 727, in _read_query_result
result.read()
File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 1066, in read
first_packet = self.connection._read_packet()
File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 656, in _read_packet
packet_header = self._read_bytes(4)
File "/usr/local/lib/python3.6/site-packages/pymysql/connections.py", line 702, in _read_bytes
CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query') [SQL: ...] [parameters: {...}] (Background on this error at: http://sqlalche.me/e/e3q8)
Любой запрос после этого будет выполнен как обычно.
Например, это обычный случай использования. В общем, я могу повторить любой запрос в зависимости от ошибки.
Есть ли способ перехватить и повторить запрос на каком-то низком уровне sqlalchemy
api? Использование в моем коде метода try-Кроме или пользовательского query
нецелесообразно, так как я использую его слишком много раз, и он не поддерживается.