Ответ 1
Используйте celery в качестве очереди задач и django-celery-email, который является почтовым сервером Django, который отправляет отправку электронной почты в задачу сельдерея.
Представьте себе ситуацию, когда пользователь выполняет действие на веб-сайте и администраторы уведомляются. Представьте, есть 20 администраторов для уведомления. Используя обычные методы отправки электронной почты с помощью Django, пользователю придется ждать, пока все электронные письма не будут отправлены, прежде чем сможете продолжить.
Как я могу отправить все электронные письма в отдельный процесс, чтобы пользователю не приходилось ждать? Возможно ли это?
Используйте celery в качестве очереди задач и django-celery-email, который является почтовым сервером Django, который отправляет отправку электронной почты в задачу сельдерея.
Другой вариант - django-mailer. Он ставит в очередь почту в таблице базы данных, а затем вы используете задание cron для отправки.
Нить может быть возможным решением. Я интенсивно использую потоки в своем приложении для задач haevy.
# This Python file uses the following encoding: utf-8
#threading
from threading import Thread
...
class afegeixThread(Thread):
def __init__ (self,usuari, parameter=None):
Thread.__init__(self)
self.parameter = parameter
...
def run(self):
errors = []
try:
if self.paramenter:
....
except Exception, e:
...
...
n = afegeixThread( 'p1' )
n.start()