Added logging and retry

This commit is contained in:
2020-01-22 16:36:42 +01:00
parent 85b3e9ddb3
commit c6b11cd67b

View File

@@ -1,27 +1,44 @@
from time import sleep from time import sleep
from threading import Thread from threading import Thread
from logging import getLogger
class FlaskPageThread(Thread): class FlaskPageThread(Thread):
def __init__(self, delay, func, *args, **kwargs): def __init__(self, delay, func, *args, **kwargs):
self.delay = delay
self.func = func
self.args = args
self.page = ("init", 500)
self.hhealthy = False
name = kwargs.get("name", "FlaskPageThread") name = kwargs.get("name", "FlaskPageThread")
self.delay = delay
self.func = func
self.args = args
self.page = ("init", 500)
self.healthy = False
self.retrycount = kwargs.get("retrycount", 3)
self.retrydelay = kwargs.get("retrydelay", 1)
self.log = kwargs.get("log", getLogger(name))
self.log.debug("FlaskPageThread.__init__(%s)" % name)
super().__init__(target=self.run, daemon=True, name=name) super().__init__(target=self.run, daemon=True, name=name)
def genpage(self): def genpage(self):
try: c = self.retrycount
data = self.func(*self.args) while c > 0:
self.page = (data, 200) c-=1
self.hhealthy = True try:
except Exception as e: self.log.debug("FlaskPageThread.genpage()")
print("Exception: %s" % e) data = self.func(*self.args)
self.page = ("Internal error", 500) self.page = (data, 200)
self.hhealthy = False self.healthy = True
c=0
except Exception as e:
print("Exception: %s" % e)
if c == 0:
self.page = ("Internal error", 500)
self.healthy = False
else:
# retry
self.log.warn("FlaskPageThread.genpage(): Retry %s"
% self.name)
sleep(self.retrydelay)
def run(self): def run(self):
self.log.debug("FlaskPageThread.run()")
self.genpage() self.genpage()
while True: while True:
sleep(self.delay) sleep(self.delay)