ronaldlam / Autotrageur

Automated arbitrageur
2 stars 1 forks source link

Arbitrage: Reconnect after db connection timeout. #140

Closed ronaldlam closed 6 years ago

ronaldlam commented 6 years ago

Looks like connections will die after 8h by default: https://mariadb.com/kb/en/library/server-system-variables/#wait_timeout We can either schedule in new connections (maybe db.ping()) or retry connecting when required. Error in action, /home/worker/Autotrageur/logs/2018-07-19_15_09_24_558406/2018-07-19_15_09_24_558406.log:

Traceback (most recent call last):
  File "run_autotrageur.py", line 88, in <module>
    autotrageur.run_autotrageur(arguments)
  File "/home/worker/Autotrageur/bot/arbitrage/autotrageur.py", line 288, in run_autotrageur
    fancy_log("Start Poll")
  File "/home/worker/Autotrageur/bot/arbitrage/fcf_autotrageur.py", line 368, in _execute_trade
    """Cleans up the state of the autotrageur before performing next
  File "/home/worker/Autotrageur/bot/arbitrage/fcf_autotrageur.py", line 254, in __persist_trade_data
    Args:
  File "/home/worker/Autotrageur/libs/db/maria_db_handler.py", line 91, in insert_row
    'ON DUPLICATE KEY UPDATE ...' portion (if necessary).
  File "/home/worker/Autotrageur/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/home/worker/Autotrageur/venv/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/home/worker/Autotrageur/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/home/worker/Autotrageur/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/home/worker/Autotrageur/venv/lib/python3.6/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/home/worker/Autotrageur/venv/lib/python3.6/site-packages/MySQLdb/connections.py", line 277, in query
    _mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')