From be2beeed9ed0cc8efeb14fde2529a88786127b83 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Fri, 3 Nov 2023 15:10:37 +0530 Subject: [PATCH] fix: improve email queue reliability (#23070) * feat: control email queue batch size with config * fix: Give emails who failed once less priority while sending --- frappe/email/queue.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frappe/email/queue.py b/frappe/email/queue.py index b481fd21cd..69d6c17adf 100755 --- a/frappe/email/queue.py +++ b/frappe/email/queue.py @@ -151,8 +151,10 @@ def flush(from_test=False): def get_queue(): + batch_size = cint(frappe.conf.email_queue_batch_size) or 500 + return frappe.db.sql( - """select + f"""select name, sender from `tabEmail Queue` @@ -160,8 +162,8 @@ def get_queue(): (status='Not Sent' or status='Partially Sent') and (send_after is null or send_after < %(now)s) order - by priority desc, creation asc - limit 500""", + by priority desc, retry asc, creation asc + limit {batch_size}""", {"now": now_datetime()}, as_dict=True, )