perf: add auto repeat to long queue

This commit is contained in:
Ejaaz Khan 2025-04-07 17:03:06 +05:30
parent 8fcd5d1cfa
commit cf2d666bec
2 changed files with 6 additions and 12 deletions

View file

@ -483,9 +483,7 @@ def make_auto_repeat_entry():
if not jobs or enqueued_method not in jobs[frappe.local.site]:
date = getdate(today())
data = get_auto_repeat_entries(date)
frappe.enqueue(enqueued_method, data=data)
# Set auto-repeat to complete when all auto-repeats are added to the queue
set_auto_repeat_as_completed(data)
frappe.enqueue(enqueued_method, data=data, queue="long")
def create_repeated_entries(data):
@ -501,6 +499,10 @@ def create_repeated_entries(data):
if schedule_date and not doc.disabled:
frappe.db.set_value("Auto Repeat", doc.name, "next_schedule_date", schedule_date)
if doc.is_completed():
doc.status = "Completed"
doc.save()
def get_auto_repeat_entries(date=None):
if not date:
@ -517,14 +519,6 @@ def get_auto_repeat_entries(date=None):
return query.run(as_dict=1)
def set_auto_repeat_as_completed(auto_repeat):
for entry in auto_repeat:
doc = frappe.get_doc("Auto Repeat", entry.name)
if doc.is_completed():
doc.status = "Completed"
doc.save()
@frappe.whitelist()
def make_auto_repeat(doctype, docname, frequency="Daily", start_date=None, end_date=None):
if not start_date:

View file

@ -250,13 +250,13 @@ scheduler_events = {
"frappe.desk.form.document_follow.send_daily_updates",
"frappe.social.doctype.energy_point_settings.energy_point_settings.allocate_review_points",
"frappe.integrations.doctype.google_contacts.google_contacts.sync",
"frappe.automation.doctype.auto_repeat.auto_repeat.make_auto_repeat_entry",
],
"daily_long": [
"frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily",
"frappe.integrations.doctype.s3_backup_settings.s3_backup_settings.take_backups_daily",
"frappe.email.doctype.auto_email_report.auto_email_report.send_daily",
"frappe.integrations.doctype.google_drive.google_drive.daily_backup",
"frappe.automation.doctype.auto_repeat.auto_repeat.make_auto_repeat_entry",
],
"weekly_long": [
"frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_weekly",