Merge branch 'vjFaLk-remove-celery' into develop
diff --git a/erpnext/crm/doctype/newsletter/newsletter.py b/erpnext/crm/doctype/newsletter/newsletter.py
old mode 100644
new mode 100755
index 52d3178..be1235b
--- a/erpnext/crm/doctype/newsletter/newsletter.py
+++ b/erpnext/crm/doctype/newsletter/newsletter.py
@@ -9,7 +9,9 @@
from frappe.model.document import Document
from frappe.email.bulk import check_bulk_limit
from frappe.utils.verified_command import get_signed_params, verify_request
-import erpnext.tasks
+from frappe.utils.background_jobs import enqueue
+from frappe.utils.scheduler import log
+from frappe.email.bulk import send
from erpnext.crm.doctype.newsletter_list.newsletter_list import add_subscribers
class Newsletter(Document):
@@ -32,11 +34,11 @@
self.recipients = self.get_recipients()
if getattr(frappe.local, "is_ajax", False):
- # to avoid request timed out!
self.validate_send()
- # hack! event="bulk_long" to queue in longjob queue
- erpnext.tasks.send_newsletter.delay(frappe.local.site, self.name, event="bulk_long")
+ # using default queue with a longer timeout as this isn't a scheduled task
+ enqueue(send_newsletter, queue='default', timeout=1500, event='send_newsletter', newsletter=self.name)
+
else:
self.send_bulk()
@@ -53,8 +55,6 @@
sender = self.send_from or frappe.utils.get_formatted_email(self.owner)
- from frappe.email.bulk import send
-
if not frappe.flags.in_test:
frappe.db.auto_commit_on_many_writes = True
@@ -166,4 +166,24 @@
frappe.respond_as_web_page(_("Confirmed"), _("{0} has been successfully added to our Newsletter list.").format(email))
+def send_newsletter(newsletter):
+ try:
+ doc = frappe.get_doc("Newsletter", newsletter)
+ doc.send_bulk()
+
+ except:
+ frappe.db.rollback()
+
+ # wasn't able to send emails :(
+ doc.db_set("email_sent", 0)
+ frappe.db.commit()
+
+ log("send_newsletter")
+
+ raise
+
+ else:
+ frappe.db.commit()
+
+
diff --git a/erpnext/tasks.py b/erpnext/tasks.py
deleted file mode 100644
index cef0ac9..0000000
--- a/erpnext/tasks.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# MIT License. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.celery_app import celery_task, task_logger
-from frappe.utils.scheduler import log
-
-@celery_task()
-def send_newsletter(site, newsletter, event):
- # hack! pass event="bulk_long" to queue in longjob queue
- try:
- frappe.connect(site=site)
- doc = frappe.get_doc("Newsletter", newsletter)
- doc.send_bulk()
-
- except:
- frappe.db.rollback()
-
- task_logger.error(site)
- task_logger.error(frappe.get_traceback())
-
- # wasn't able to send emails :(
- doc.db_set("email_sent", 0)
- frappe.db.commit()
-
- log("send_newsletter")
-
- raise
-
- else:
- frappe.db.commit()
-
- finally:
- frappe.destroy()