From 30396adc139738c638cbb7e2d9168ef4e3a3db48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= Date: Sat, 13 Apr 2024 22:08:11 +0100 Subject: [PATCH] chore: start and stop of cron scheduler --- src/appier/base.py | 12 ++++++++++++ src/appier/scheduler.py | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/appier/base.py b/src/appier/base.py index f5c0bbbb..5d38ad20 100644 --- a/src/appier/base.py +++ b/src/appier/base.py @@ -734,6 +734,7 @@ def start(self, refresh=True): self._start_controllers() self._start_models() self._start_supervisor() + self._start_cron() if refresh: self.refresh() self.status = RUNNING @@ -745,6 +746,7 @@ def stop(self, refresh=True): self._print_bye() if refresh: self.refresh() + self._stop_cron() self._stop_supervisor() self._stop_models() self._stop_controllers() @@ -5384,6 +5386,16 @@ def _start_supervisor(self): def _stop_supervisor(self): pass + def _start_cron(self): + pass + + def _stop_cron(self): + if not self._cron: + return + self._cron.stop() + self._cron.join() + self._cron = None + def _add_route(self, *args, **kwargs): self.__routes.append(args) self.clear_routes() diff --git a/src/appier/scheduler.py b/src/appier/scheduler.py index 13fe779b..64a1f10e 100644 --- a/src/appier/scheduler.py +++ b/src/appier/scheduler.py @@ -81,8 +81,10 @@ def run(self): self._condition.wait(self.timeout) self._condition.release() - def stop(self): + def stop(self, awake=True): self.running = False + if awake: + self.awake() def tick(self): pass