diff --git a/app/db_sql.py b/app/db_sql.py index 57210a3..9e27bbb 100644 --- a/app/db_sql.py +++ b/app/db_sql.py @@ -5,7 +5,7 @@ from app.config import settings from app.log import log, logging, logger_reset from sqlalchemy import create_engine, text, Time -from sqlalchemy.exc import IntegrityError, OperationalError +from sqlalchemy.exc import IntegrityError, OperationalError, ProgrammingError db_uri = settings.SQLALCHEMY_DB_URI @@ -962,6 +962,31 @@ def run_sql_select( else: log.info('Successfully executed the SQL on the second try.') pass + except ProgrammingError as e: + log.error('A programming error exception happened. This may be related to multithreading. It may also be related to a DB connection issue. Going to try again...') + log.exception('**** *** ** * ### BEGIN ### Programming Exception Happened: Trying again... * ** *** ****') + log.error('^^^^ ^^^ ^^ ^ ### END ### Programming Exception ^ ^^ ^^^ ^^^^') + log.error('SQL Alchemy DB URI:') + log.error(settings.SQLALCHEMY_DB_URI) + + sql_connect(current_db=db) + + log.info('Now trying the query again...') + try: + if data: + log.info('2x Executing with SQL statement and data...') + result = db.execute(sql, data) + else: + log.info('2x Executing with SQL statement only...') + result = db.execute(sql) + except Exception as e: + log.error('Tried again an exception was raised again. Not going to try again.') + log.exception('**** *** ** * ### BEGIN ### (2x) Second Exception Happened: Returning False * ** *** ****') + log.error('^^^^ ^^^ ^^ ^ ### END ### Exception ^ ^^ ^^^ ^^^^') + return False + else: + log.info('Successfully executed the SQL on the second try.') + pass except Exception as e: log.error('An unknown exception happened. Returning False.') log.exception('**** *** ** * ### BEGIN ### Exception Happened: Returning False * ** *** ****') diff --git a/app/routers/api_crud.py b/app/routers/api_crud.py index 9f82f96..29be641 100644 --- a/app/routers/api_crud.py +++ b/app/routers/api_crud.py @@ -566,7 +566,7 @@ async def patch_obj( return mk_resp(data=False, status_code=400, response=commons.response) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING - # time.sleep(2.5) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING + time.sleep(2.5) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING debug_data = {}