想象一下这样一种情况:用户在网站上执行操作,管理员收到通知。假设有20个管理员要通知。通过使用Django发送电子邮件的正常方法,用户将不得不等待,直到所有的电子邮件都被发送,然后才能继续。如何在一个单独的进程中发送所有电子邮件,以便用户不必等待?这可能吗?
vtwuwzda1#
使用celery作为任务队列,django-celery-email是一个Django电子邮件后端,它将电子邮件发送到celery任务。
zxlwwiss2#
另一个选择是django-mailer。它将邮件在数据库表中排队,然后使用cron作业发送它们。https://github.com/pinax/django-mailer
ki0zmccv3#
如果我们谈论的是一次只发送20封邮件,线程可能是一个可能的解决方案。对于昂贵的后台任务,使用Celery。这是一个使用线程的示例:
# 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()
3条答案
按热度按时间vtwuwzda1#
使用celery作为任务队列,django-celery-email是一个Django电子邮件后端,它将电子邮件发送到celery任务。
zxlwwiss2#
另一个选择是django-mailer。它将邮件在数据库表中排队,然后使用cron作业发送它们。
https://github.com/pinax/django-mailer
ki0zmccv3#
如果我们谈论的是一次只发送20封邮件,线程可能是一个可能的解决方案。对于昂贵的后台任务,使用Celery。
这是一个使用线程的示例: