From 585200988bf4a021b56bcbd5566309b3ca2e6a0e Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Fri, 29 Dec 2023 14:35:33 +0530 Subject: [PATCH] feat: simple procline for scheduler Makes it easy to tell if scheduler is for some reason "stuck". --- frappe/utils/scheduler.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frappe/utils/scheduler.py b/frappe/utils/scheduler.py index 88cb85b667..ca2950a156 100755 --- a/frappe/utils/scheduler.py +++ b/frappe/utils/scheduler.py @@ -14,6 +14,8 @@ import random import time from typing import NoReturn +import setproctitle + # imports - module imports import frappe from frappe.utils import cint, get_datetime, get_sites, now_datetime @@ -31,6 +33,10 @@ def cprint(*args, **kwargs): pass +def _proctitle(message): + setproctitle.setproctitle(f"frappe-scheduler: {message}") + + def start_scheduler() -> NoReturn: """Run enqueue_events_for_all_sites based on scheduler tick. Specify scheduler_interval in seconds in common_site_config.json""" @@ -39,6 +45,7 @@ def start_scheduler() -> NoReturn: set_niceness() while True: + _proctitle("idle") time.sleep(tick) enqueue_events_for_all_sites() @@ -68,6 +75,7 @@ def enqueue_events_for_site(site: str) -> None: frappe.logger("scheduler").error(f"Exception in Enqueue Events for Site {site}", exc_info=True) try: + _proctitle(f"scheduling events for {site}") frappe.init(site=site) frappe.connect() if is_scheduler_inactive():