Now with a new SQL check for ProgrammingError. This is related to multithreading usually.
This commit is contained in:
@@ -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 * ** *** ****')
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
Reference in New Issue
Block a user