diff --git a/scripts/fix_monitor_start.py b/scripts/fix_monitor_start.py new file mode 100644 index 0000000..e39a181 --- /dev/null +++ b/scripts/fix_monitor_start.py @@ -0,0 +1,11 @@ +from pathlib import Path + +path = Path('app/main.py') +text = path.read_text() +old = """def ensure_monitor_running() -> None:\n global monitor_task\n if monitor_task is None or monitor_task.done():\n monitor_task = asyncio.create_task(monitor.loop(SessionLocal, interval_seconds=10))\n""" +new = """def ensure_monitor_running() -> None:\n global monitor_task\n\n if monitor_task is not None and not monitor_task.done() and not monitor.running:\n monitor_task.cancel()\n monitor_task = None\n\n if monitor_task is None or monitor_task.done():\n monitor_task = asyncio.create_task(monitor.loop(SessionLocal, interval_seconds=10))\n""" +if old not in text: + print('ensure_monitor_running already patched or function shape differs') +else: + path.write_text(text.replace(old, new)) + print('monitor start/restart patch applied')