Added logging and retry
This commit is contained in:
@@ -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):
|
||||||
|
name = kwargs.get("name", "FlaskPageThread")
|
||||||
self.delay = delay
|
self.delay = delay
|
||||||
self.func = func
|
self.func = func
|
||||||
self.args = args
|
self.args = args
|
||||||
self.page = ("init", 500)
|
self.page = ("init", 500)
|
||||||
self.hhealthy = False
|
self.healthy = False
|
||||||
name = kwargs.get("name", "FlaskPageThread")
|
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):
|
||||||
|
c = self.retrycount
|
||||||
|
while c > 0:
|
||||||
|
c-=1
|
||||||
try:
|
try:
|
||||||
|
self.log.debug("FlaskPageThread.genpage()")
|
||||||
data = self.func(*self.args)
|
data = self.func(*self.args)
|
||||||
self.page = (data, 200)
|
self.page = (data, 200)
|
||||||
self.hhealthy = True
|
self.healthy = True
|
||||||
|
c=0
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Exception: %s" % e)
|
print("Exception: %s" % e)
|
||||||
|
if c == 0:
|
||||||
self.page = ("Internal error", 500)
|
self.page = ("Internal error", 500)
|
||||||
self.hhealthy = False
|
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)
|
||||||
|
Reference in New Issue
Block a user