fix (data): Add reconnection on trans fail.

This commit is contained in:
2023-08-19 13:10:53 +03:00
parent 01a4f7f2bf
commit e9c879da7b

View File

@@ -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: