From e9c879da7bc41a7084e95513e5b44c8cb223d140 Mon Sep 17 00:00:00 2001 From: Conatum Date: Sat, 19 Aug 2023 13:10:53 +0300 Subject: [PATCH] fix (data): Add reconnection on trans fail. --- src/data/connector.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/data/connector.py b/src/data/connector.py index 15f3b004..7b7b3a5f 100644 --- a/src/data/connector.py +++ b/src/data/connector.py @@ -2,6 +2,7 @@ from typing import Protocol, runtime_checkable, Callable, Awaitable import logging import psycopg as psq +from psycopg.pq import TransactionStatus from .cursor import AsyncLoggingCursor @@ -27,6 +28,11 @@ class Connector: # TODO: Reconnection logic? if not self.conn: raise ValueError("Attempting to get connection before initialisation!") + if self.conn.info.transaction_status is TransactionStatus.INERROR: + await self.connect() + logger.error( + "Database connection transaction failed!! This should not happen. Reconnecting." + ) return self.conn async def connect(self) -> psq.AsyncConnection: