From d13ab320b7248fbbda60434954478de31ff240c0 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 14 Dec 2022 12:44:37 +0530 Subject: [PATCH] refactor: Duplicate enqueue checks scheduled_job_type.enqueue already does check for duplicate job and is more "recent" --- .../doctype/scheduled_job_type/scheduled_job_type.py | 2 +- frappe/utils/scheduler.py | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) 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 3ae3df7693..a8a2e25891 100644 --- a/frappe/core/doctype/scheduled_job_type/scheduled_job_type.py +++ b/frappe/core/doctype/scheduled_job_type/scheduled_job_type.py @@ -22,7 +22,7 @@ class ScheduledJobType(Document): # force logging for all events other than continuous ones (ALL) self.create_log = 1 - def enqueue(self, force=False): + def enqueue(self, force=False) -> bool: # enqueue event if last execution is done if self.is_event_due() or force: if not self.is_job_in_queue(): diff --git a/frappe/utils/scheduler.py b/frappe/utils/scheduler.py index 05399c0e91..6a8cf8b5a9 100755 --- a/frappe/utils/scheduler.py +++ b/frappe/utils/scheduler.py @@ -83,15 +83,11 @@ def enqueue_events_for_site(site: str) -> None: def enqueue_events(site: str) -> list[str] | None: if schedule_jobs_based_on_activity(): - queued_jobs = get_jobs(site=site, key="job_type").get(site) or [] - enqueued_jobs = [] for job_type in frappe.get_all("Scheduled Job Type", ("name", "method"), {"stopped": 0}): - if not job_type.method in queued_jobs: - # don't add it to queue if still pending - job_type = frappe.get_cached_doc("Scheduled Job Type", job_type.name) - if job_type.enqueue(): - enqueued_jobs.append(job_type.method) + job_type = frappe.get_cached_doc("Scheduled Job Type", job_type.name) + if _enqueued := job_type.enqueue(): + enqueued_jobs.append(job_type.method) return enqueued_jobs