From 91c48b512fbea097fd37b563f7725c601ab6c0c6 Mon Sep 17 00:00:00 2001 From: Karl Hudgell Date: Mon, 7 Apr 2025 08:34:56 +0100 Subject: [PATCH] fix double running job --- ai_frame_image_server.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ai_frame_image_server.py b/ai_frame_image_server.py index b4ce015..93fe687 100644 --- a/ai_frame_image_server.py +++ b/ai_frame_image_server.py @@ -84,10 +84,19 @@ def scheduled_task() -> None: if user_config["frame"]["auto_regen"] == "True": - scheduler = BackgroundScheduler() - regen_time = user_config["frame"]["regen_time"].split(":") - scheduler.add_job(scheduled_task, "cron", hour=regen_time[0], minute=regen_time[1]) - scheduler.start() + if os.environ.get("WERKZEUG_RUN_MAIN") == "true": + scheduler = BackgroundScheduler() + regen_time = user_config["frame"]["regen_time"].split(":") + scheduler.add_job( + scheduled_task, + "cron", + hour=regen_time[0], + minute=regen_time[1], + id="scheduled_task", + max_instances=1, # prevent overlapping + replace_existing=True # don't double-schedule + ) + scheduler.start() os.makedirs(image_folder, exist_ok=True) app.run(host="0.0.0.0", port=user_config["frame"]["port"], debug=True)