Merge branch 'vjFaLk-remove-celery' into develop
This commit is contained in:
commit
65f2d92437
32
erpnext/crm/doctype/newsletter/newsletter.py
Normal file → Executable file
32
erpnext/crm/doctype/newsletter/newsletter.py
Normal file → Executable file
@ -9,7 +9,9 @@ from frappe import throw, _
|
||||
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 @@ class Newsletter(Document):
|
||||
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 @@ class Newsletter(Document):
|
||||
|
||||
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 @@ def confirm_subscription(email):
|
||||
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()
|
||||
|
||||
|
||||
|
||||
|
@ -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()
|
Loading…
x
Reference in New Issue
Block a user