Added the pool_recycle back in and it will default to 1800 based on Docker aether_api_config.py. Added a retry on operational exception.
This commit is contained in:
@@ -23,6 +23,7 @@ engine = create_engine(
|
|||||||
echo = False,
|
echo = False,
|
||||||
pool_use_lifo = True,
|
pool_use_lifo = True,
|
||||||
pool_pre_ping = True,
|
pool_pre_ping = True,
|
||||||
|
pool_recycle = settings.DB['pool_recycle'],
|
||||||
isolation_level = 'READ COMMITTED',
|
isolation_level = 'READ COMMITTED',
|
||||||
connect_args = {'connect_timeout': settings.DB['connect_timeout']}
|
connect_args = {'connect_timeout': settings.DB['connect_timeout']}
|
||||||
)
|
)
|
||||||
@@ -380,20 +381,42 @@ def sql_update(
|
|||||||
return None
|
return None
|
||||||
except OperationalError as e: # Likely an unknown field or related
|
except OperationalError as e: # Likely an unknown field or related
|
||||||
trans.rollback()
|
trans.rollback()
|
||||||
log.error('An operational error exception happened. This is likely because there was an unknown field or similar included. Returning False')
|
# log.error('An operational error exception happened. This is likely because there was an unknown field or similar included. Returning False')
|
||||||
log.exception('**** *** ** * ### BEGIN ### Operational Error Exception Happened: Returning False * ** *** ****')
|
# log.exception('**** *** ** * ### BEGIN ### Operational Error Exception Happened: Returning False * ** *** ****')
|
||||||
log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Error Exception ^ ^^ ^^^ ^^^^')
|
# log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Error Exception ^ ^^ ^^^ ^^^^')
|
||||||
|
|
||||||
log.error('**** *** ** * ### BEGIN ### Operational Error Exception Details: * ** *** ****')
|
# log.error('**** *** ** * ### BEGIN ### Operational Error Exception Details: * ** *** ****')
|
||||||
log.error('**** *** ** * SQL Statement: * ** *** ****')
|
# log.error('**** *** ** * SQL Statement: * ** *** ****')
|
||||||
log.error(e.statement)
|
# log.error(e.statement)
|
||||||
log.error('**** *** ** * SQL Parameters: * ** *** ****')
|
# log.error('**** *** ** * SQL Parameters: * ** *** ****')
|
||||||
log.error(e.params)
|
# log.error(e.params)
|
||||||
log.error('**** *** ** * SQL Origin Message: * ** *** ****')
|
# log.error('**** *** ** * SQL Origin Message: * ** *** ****')
|
||||||
log.error(e.orig)
|
# log.error(e.orig)
|
||||||
log.error('**** *** ** * ### END ### Operational Error Exception Details: * ** *** ****')
|
# log.error('**** *** ** * ### END ### Operational Error Exception Details: * ** *** ****')
|
||||||
|
|
||||||
return False
|
# return False
|
||||||
|
|
||||||
|
log.error('An operational error exception happened. This is likely a "MySQL server has gone away" error. Going to try again...')
|
||||||
|
log.exception('**** *** ** * ### BEGIN ### Operational Exception Happened: Trying again... * ** *** ****')
|
||||||
|
log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Exception ^ ^^ ^^^ ^^^^')
|
||||||
|
|
||||||
|
sql_connect(current_db=db)
|
||||||
|
|
||||||
|
log.info('Now trying the query again...')
|
||||||
|
try:
|
||||||
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
|
||||||
|
log.info('2x Executing with SQL statement and data...')
|
||||||
|
result_update = db.execute(sql_update, data)
|
||||||
|
trans.commit()
|
||||||
|
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 # Not successful
|
||||||
|
else:
|
||||||
|
log.info('Successfully executed the SQL on the second try.')
|
||||||
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
trans.rollback()
|
trans.rollback()
|
||||||
log.error('An unknown exception happened. Returning False')
|
log.error('An unknown exception happened. Returning False')
|
||||||
@@ -1202,7 +1225,7 @@ def sql_delete(
|
|||||||
log.debug(dir(result))
|
log.debug(dir(result))
|
||||||
log.debug(vars(result))
|
log.debug(vars(result))
|
||||||
except OperationalError as e:
|
except OperationalError as e:
|
||||||
log.error('An operational error exception happended. This is likely a "MySQL server has gone away" error. Going to try again...')
|
log.error('An operational error exception happened. This is likely a "MySQL server has gone away" error. Going to try again...')
|
||||||
log.exception('**** *** ** * ### BEGIN ### Operational Exception Happened: Trying again... * ** *** ****')
|
log.exception('**** *** ** * ### BEGIN ### Operational Exception Happened: Trying again... * ** *** ****')
|
||||||
log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Exception ^ ^^ ^^^ ^^^^')
|
log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Exception ^ ^^ ^^^ ^^^^')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user