This commit is contained in:
jar3b 2018-12-05 16:52:52 +03:00
parent 4c649af372
commit 3b42bb9af3
3 changed files with 22 additions and 5 deletions

View File

@ -1,9 +1,14 @@
import logging
import sys
from django.utils.module_loading import import_string
logger = logging.getLogger(__name__)
hdlr = logging.StreamHandler(sys.stderr)
formatter = logging.Formatter('%(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
# celery app
celery_app = import_string('project.celery_app.app')

View File

@ -1,10 +1,18 @@
from django.core.mail.backends.base import BaseEmailBackend
from django.utils.encoding import force_text
from django.utils.module_loading import import_string
from . import logger
from .settings import EMAIL_SEND_TASK
def _get_message_recipients(email_message):
message_recipients = getattr(email_message, 'to', None)
if not isinstance(message_recipients, list):
return 'unknown'
return ', '.join(map(force_text, message_recipients))
class EmailBackend(BaseEmailBackend):
task = None
@ -15,7 +23,10 @@ class EmailBackend(BaseEmailBackend):
def send_messages(self, email_messages):
num_sent = 0
for email in email_messages:
logger.info(email)
logger.info(self.task)
num_sent += 1
try:
self.task.apply_async(email)
num_sent += 1
except Exception as e:
logger.error("cannot send message %s: %r" % (_get_message_recipients(email), e))
return num_sent

View File

@ -1,7 +1,8 @@
from . import logger
from . import logger, celery_app as app
from .settings import EMAIL_BACKEND
@app.task()
def send_message():
logger.info(EMAIL_BACKEND)
logger.info('sent')