From 692055499ab4919551e2d42a0acca6089635d06a Mon Sep 17 00:00:00 2001 From: Aditya Hase Date: Tue, 25 Feb 2020 14:44:37 +0530 Subject: [PATCH] feat(scheduler): Frequent job scheduling Scheduler tick interval (default 60 seconds) can now be configured with scheduler_tick_interval key in common_site_config.json --- frappe/core/doctype/scheduled_job_type/scheduled_job_type.py | 4 ++++ frappe/utils/scheduler.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/frappe/core/doctype/scheduled_job_type/scheduled_job_type.py b/frappe/core/doctype/scheduled_job_type/scheduled_job_type.py index 5d5bd35eec..3cd994ebfa 100644 --- a/frappe/core/doctype/scheduled_job_type/scheduled_job_type.py +++ b/frappe/core/doctype/scheduled_job_type/scheduled_job_type.py @@ -84,6 +84,10 @@ class ScheduledJobType(Document): def update_scheduler_log(self, status): if not self.create_log: + # self.get_next_execution will work properly iff self.last_execution is properly set + if self.frequency == "All" and status == 'Start': + self.db_set('last_execution', now_datetime(), update_modified=False) + frappe.db.commit() return if not self.scheduler_log: self.scheduler_log = frappe.get_doc(dict(doctype = 'Scheduled Job Log', scheduled_job_type=self.name)).insert(ignore_permissions=True) diff --git a/frappe/utils/scheduler.py b/frappe/utils/scheduler.py index 708bec887f..0a1eb555ad 100755 --- a/frappe/utils/scheduler.py +++ b/frappe/utils/scheduler.py @@ -24,7 +24,7 @@ def start_scheduler(): '''Run enqueue_events_for_all_sites every 2 minutes (default). Specify scheduler_interval in seconds in common_site_config.json''' - schedule.every(60).seconds.do(enqueue_events_for_all_sites) + schedule.every(frappe.get_conf().scheduler_tick_interval or 60).seconds.do(enqueue_events_for_all_sites) while True: schedule.run_pending()