исключение случайной ошибки sqlalchemy во время сброса или аналогичного — не влияет на функциональность

#python #sqlalchemy

Вопрос:

У меня запущено приложение, и время от времени эта трассировка стека отображается в консоли. Однако приложение продолжает работать бесперебойно. В любом случае, мне не очень нравится такое непредсказуемое поведение в приложении. Могу ли я избежать таких сообщений об ошибках? Все запросы возвращаются с правильными данными, обновления работают нормально. Понятия не имею, почему это сообщение продолжает появляться в журналах.

 Exception during reset or similar Traceback (most recent call last):  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 663, in _finalize_fairy  fairy._reset(pool)  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 868, in _reset  pool._dialect.do_rollback(self)  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 631, in do_rollback  dbapi_connection.rollback() psycopg2.OperationalError: server closed the connection unexpectedly  This probably means the server terminated abnormally  before or while processing the request.  

Вот как я создаю пример сеанса и запроса:

 engine = create_engine(  settings.SQLALCHEMY_DATABASE_URI,  pool_pre_ping=True,  echo=False,  connect_args={"connect_timeout": 30},  pool_size=20,  max_overflow=100, ) Base.metadata.create_all(engine) SessionLocal = sessionmaker(expire_on_commit=True, autocommit=False, autoflush=False, bind=engine)  

Пример запроса:

 def get_user_name(username: str, s=None) -gt; str:  if s is None:  s = SessionLocal()  try:  user_obj = s.query(User).filter_by(username=username)  if len(list(user_obj)) lt; 1:  return username  return user_obj.first().first_name  except Exception as ex:  s.rollback()  logger.exception(f"Failed while Error : {ex}")