Add task base
This commit is contained in:
parent
f7956bc5f4
commit
e4044ce150
@ -14,7 +14,20 @@ from .settings import TASK_QUEUE_NAME
|
|||||||
logger = get_task_logger(__name__)
|
logger = get_task_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@celery.task(bind=True, queue=TASK_QUEUE_NAME, acks_late=True,
|
class PersitentEmailConnectionTask(celery.Task):
|
||||||
|
_connection = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def connection(self):
|
||||||
|
if self._connection is None:
|
||||||
|
self._connection = get_email_connection()
|
||||||
|
print('NEW CONN')
|
||||||
|
else:
|
||||||
|
print('OLD CONN')
|
||||||
|
return self._connection
|
||||||
|
|
||||||
|
|
||||||
|
@celery.task(bind=True, base=PersitentEmailConnectionTask, queue=TASK_QUEUE_NAME, acks_late=True,
|
||||||
default_retry_delay=20, autoretry_for=(EmailTransportException,), retry_kwargs={'max_retries': 5})
|
default_retry_delay=20, autoretry_for=(EmailTransportException,), retry_kwargs={'max_retries': 5})
|
||||||
def send_message(self, email):
|
def send_message(self, email):
|
||||||
logger.debug('task started')
|
logger.debug('task started')
|
||||||
@ -25,9 +38,7 @@ def send_message(self, email):
|
|||||||
raise Exception('Invalid message class, only django.core.mail.EmailMessage is supported')
|
raise Exception('Invalid message class, only django.core.mail.EmailMessage is supported')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
connection = get_email_connection()
|
email.connection = self.connection
|
||||||
|
|
||||||
email.connection = connection
|
|
||||||
email.send()
|
email.send()
|
||||||
except (socket_error, smtplib.SMTPSenderRefused,
|
except (socket_error, smtplib.SMTPSenderRefused,
|
||||||
smtplib.SMTPRecipientsRefused,
|
smtplib.SMTPRecipientsRefused,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user