from time import sleep from threading import Thread class FlaskPageThread(Thread): 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") super().__init__(target=self.run, daemon=True, name=name) def genpage(self): try: data = self.func(*self.args) self.page = (data, 200) self.hhealthy = True except Exception as e: print("Exception: %s" % e) self.page = ("Internal error", 500) self.hhealthy = False def run(self): self.genpage() while True: sleep(self.delay) self.genpage() if __name__ == "__main__": pass