From 6afb429185dc6b9549af8111d35410c693c1de63 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 29 Jan 2023 09:53:02 +0100 Subject: [PATCH] Stop Scheduler also on reboot --- cps/server.py | 8 ++++++++ cps/services/background_scheduler.py | 2 -- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cps/server.py b/cps/server.py index fb70a723..502745a8 100644 --- a/cps/server.py +++ b/cps/server.py @@ -22,6 +22,7 @@ import errno import signal import socket import subprocess # nosec +from .services.background_scheduler import BackgroundScheduler try: from gevent.pywsgi import WSGIServer @@ -265,6 +266,12 @@ class WebServer(object): subprocess.call(args, close_fds=True) # nosec return True + @staticmethod + def shutdown_scheduler(): + scheduler = BackgroundScheduler() + if scheduler: # and not scheduler.scheduler.STATE_STOPPED: + scheduler.scheduler.shutdown() + def _killServer(self, __, ___): self.stop() @@ -273,6 +280,7 @@ class WebServer(object): updater_thread.stop() log.info("webserver stop (restart=%s)", restart) + self.shutdown_scheduler() self.restart = restart if self.wsgiserver: if _GEVENT: diff --git a/cps/services/background_scheduler.py b/cps/services/background_scheduler.py index ec3555f0..72991559 100644 --- a/cps/services/background_scheduler.py +++ b/cps/services/background_scheduler.py @@ -45,8 +45,6 @@ class BackgroundScheduler: cls.scheduler = BScheduler() cls.scheduler.start() - atexit.register(lambda: cls.scheduler.shutdown()) - return cls._instance def schedule(self, func, trigger, name=None):