mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Shorten recorder connection init (#6432)
* Wait up to 9 seconds * Set number of recorder retries to 8 * Do not sleep when reporting last connection error if no retries left * Make sure we clean up old engine if connection is retrying * Update __init__.py
This commit is contained in:
parent
2baa838ba7
commit
90ad54da7d
@ -43,8 +43,7 @@ DEFAULT_DB_FILE = 'home-assistant_v2.db'
|
|||||||
CONF_DB_URL = 'db_url'
|
CONF_DB_URL = 'db_url'
|
||||||
CONF_PURGE_DAYS = 'purge_days'
|
CONF_PURGE_DAYS = 'purge_days'
|
||||||
|
|
||||||
CONNECT_RETRY_WAIT = 10
|
CONNECT_RETRY_WAIT = 3
|
||||||
ERROR_QUERY = "Error during query: %s"
|
|
||||||
|
|
||||||
FILTER_SCHEMA = vol.Schema({
|
FILTER_SCHEMA = vol.Schema({
|
||||||
vol.Optional(CONF_EXCLUDE, default={}): vol.Schema({
|
vol.Optional(CONF_EXCLUDE, default={}): vol.Schema({
|
||||||
@ -159,7 +158,9 @@ class Recorder(threading.Thread):
|
|||||||
tries = 1
|
tries = 1
|
||||||
connected = False
|
connected = False
|
||||||
|
|
||||||
while not connected and tries < 5:
|
while not connected and tries <= 10:
|
||||||
|
if tries != 1:
|
||||||
|
time.sleep(CONNECT_RETRY_WAIT)
|
||||||
try:
|
try:
|
||||||
self._setup_connection()
|
self._setup_connection()
|
||||||
migration.migrate_schema(self)
|
migration.migrate_schema(self)
|
||||||
@ -168,7 +169,6 @@ class Recorder(threading.Thread):
|
|||||||
except Exception as err: # pylint: disable=broad-except
|
except Exception as err: # pylint: disable=broad-except
|
||||||
_LOGGER.error("Error during connection setup: %s (retrying "
|
_LOGGER.error("Error during connection setup: %s (retrying "
|
||||||
"in %s seconds)", err, CONNECT_RETRY_WAIT)
|
"in %s seconds)", err, CONNECT_RETRY_WAIT)
|
||||||
time.sleep(CONNECT_RETRY_WAIT)
|
|
||||||
tries += 1
|
tries += 1
|
||||||
|
|
||||||
if not connected:
|
if not connected:
|
||||||
@ -303,6 +303,9 @@ class Recorder(threading.Thread):
|
|||||||
else:
|
else:
|
||||||
kwargs['echo'] = False
|
kwargs['echo'] = False
|
||||||
|
|
||||||
|
if self.engine is not None:
|
||||||
|
self.engine.dispose()
|
||||||
|
|
||||||
self.engine = create_engine(self.db_url, **kwargs)
|
self.engine = create_engine(self.db_url, **kwargs)
|
||||||
models.Base.metadata.create_all(self.engine)
|
models.Base.metadata.create_all(self.engine)
|
||||||
self.get_session = scoped_session(sessionmaker(bind=self.engine))
|
self.get_session = scoped_session(sessionmaker(bind=self.engine))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user