Skip to content
Snippets Groups Projects
Commit 26e3abb9 authored by Pavel Kácha's avatar Pavel Kácha
Browse files

(Hopefully) more robust database reconnection

parent c6220244
No related branches found
No related tags found
No related merge requests found
...@@ -527,6 +527,8 @@ class MySQL(ObjectBase): ...@@ -527,6 +527,8 @@ class MySQL(ObjectBase):
crs = kwargs.pop("crs", None) crs = kwargs.pop("crs", None)
while True: while True:
try: try:
if self.con is None:
self.connect()
if crs is None: if crs is None:
crs = self.con.cursor() crs = self.con.cursor()
self.log.debug("execute: %s %s" % (args, kwargs)) self.log.debug("execute: %s %s" % (args, kwargs))
...@@ -540,9 +542,16 @@ class MySQL(ObjectBase): ...@@ -540,9 +542,16 @@ class MySQL(ObjectBase):
self.log.info("execute: Database down, trying to reconnect (%d attempts left)..." % countdown) self.log.info("execute: Database down, trying to reconnect (%d attempts left)..." % countdown)
if countdown<self.retry_count: if countdown<self.retry_count:
sleep(self.retry_pause) # no need to melt down server on longer outage sleep(self.retry_pause) # no need to melt down server on longer outage
try:
crs.close()
except Exception:
pass
try:
self.close() self.close()
self.connect() except Exception:
pass
crs = None crs = None
self.con = None
countdown -= 1 countdown -= 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment