From 6c163a06d2c7ffc59c52c58a315bbdc09d89f11a Mon Sep 17 00:00:00 2001 From: Marco Donadoni Date: Thu, 21 Sep 2023 17:59:50 +0200 Subject: [PATCH] cli: fix graceful shutdown of `start-scheduler` Handle SIGTERM in `start-scheduler` to gracefully stop consuming the workflow submission queue. Closes reanahub/reana-job-controller#347 --- reana_server/cli.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/reana_server/cli.py b/reana_server/cli.py index 18f7e376..24fd3d54 100644 --- a/reana_server/cli.py +++ b/reana_server/cli.py @@ -9,6 +9,7 @@ """REANA Server command line tool.""" import logging +import signal import click from reana_commons.config import REANA_LOG_FORMAT, REANA_LOG_LEVEL @@ -21,5 +22,12 @@ def start_scheduler(): """Start a workflow execution scheduler process.""" logging.basicConfig(level=REANA_LOG_LEVEL, format=REANA_LOG_FORMAT, force=True) scheduler = WorkflowExecutionScheduler() + + def stop_scheduler(signum, frame): + logging.info("Stopping scheduler...") + scheduler.should_stop = True + + signal.signal(signal.SIGTERM, stop_scheduler) + logging.info("Starting scheduler...") scheduler.run()